Index: src/org/eclipse/gmf/runtime/diagram/ui/editparts/DiagramRootEditPart.java =================================================================== RCS file: /home/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui/src/org/eclipse/gmf/runtime/diagram/ui/editparts/DiagramRootEditPart.java,v retrieving revision 1.6 diff -u -r1.6 DiagramRootEditPart.java --- src/org/eclipse/gmf/runtime/diagram/ui/editparts/DiagramRootEditPart.java 28 Oct 2005 14:29:38 -0000 1.6 +++ src/org/eclipse/gmf/runtime/diagram/ui/editparts/DiagramRootEditPart.java 2 Nov 2005 16:32:35 -0000 @@ -176,7 +176,7 @@ layers.add(new FreeformLayer(), DECORATION_UNPRINTABLE_LAYER); return layers; } - + /** * Creates the ScalableFreeformLayeredPane. * @return the new ScalableFreeformLayeredPane @@ -438,11 +438,15 @@ * @param rulerUnits */ private void setRulers(int rulerUnits) { - if( verticalRuler != null ) { - verticalRuler.setUnit( rulerUnits ); + if( getVerticalRuler() != null ) { + getVerticalRuler().setUnit( rulerUnits ); + } else { + setVerticalRuler(new DiagramRuler(false, rulerUnits, null)); } - if( horizontalRuler != null ) { - horizontalRuler.setUnit( rulerUnits ); + if( getHorizontalRuler() != null ) { + getHorizontalRuler().setUnit( rulerUnits ); + } else { + setHorizontalRuler(new DiagramRuler(true, rulerUnits, null)); } } @@ -477,6 +481,17 @@ ((org.eclipse.gmf.runtime.draw2d.ui.internal.graphics.ScalableFreeformLayeredPane) layers).setAntiAlias(antiAlias); } + /** + * Refreshes ruler units on the diagram + */ + protected void refreshRulerUnits() { + IPreferenceStore preferenceStore = + (IPreferenceStore) getPreferencesHint().getPreferenceStore(); + int rulerUnits = preferenceStore.getInt( + IPreferenceConstants.PREF_RULER_UNITS); + setRulers(rulerUnits); + } + /** * This is a workspace property request. It does not use a Command @@ -503,6 +518,8 @@ refreshEnableAntiAlias(); + refreshRulerUnits(); + if (pane instanceof ZoomListener) { getZoomManager().addZoomListener((ZoomListener)pane); } @@ -577,7 +594,7 @@ public PreferencesHint getPreferencesHint() { return preferencesHint; } - + /** * Override this if the Editor wishes to support a coordinate system other then the default * (usually HiMetric coordinates). @@ -587,5 +604,24 @@ public IMapMode getMapMode() { return MapModeTypes.DEFAULT_MM; } + + public DiagramRuler getHorizontalRuler() { + return horizontalRuler; + } + + + private void setHorizontalRuler(DiagramRuler horizontalRuler) { + this.horizontalRuler = horizontalRuler; + } + + + public DiagramRuler getVerticalRuler() { + return verticalRuler; + } + + + private void setVerticalRuler(DiagramRuler verticalRuler) { + this.verticalRuler = verticalRuler; + } } Index: src/org/eclipse/gmf/runtime/diagram/ui/internal/ruler/DiagramRuler.java =================================================================== RCS file: /home/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui/src/org/eclipse/gmf/runtime/diagram/ui/internal/ruler/DiagramRuler.java,v retrieving revision 1.5 diff -u -r1.5 DiagramRuler.java --- src/org/eclipse/gmf/runtime/diagram/ui/internal/ruler/DiagramRuler.java 22 Sep 2005 15:42:19 -0000 1.5 +++ src/org/eclipse/gmf/runtime/diagram/ui/internal/ruler/DiagramRuler.java 2 Nov 2005 16:32:35 -0000 @@ -88,4 +88,9 @@ PresentationListener.getInstance().removeNotificationListener(getGuideStyle(),listener); } + + + public void setGuideStyle(GuideStyle guideStyle) { + this.guideStyle = guideStyle; + } } Index: src/org/eclipse/gmf/runtime/diagram/ui/parts/DiagramEditor.java =================================================================== RCS file: /home/technology/org.eclipse.gmf/plugins/org.eclipse.gmf.runtime.diagram.ui/src/org/eclipse/gmf/runtime/diagram/ui/parts/DiagramEditor.java,v retrieving revision 1.6 diff -u -r1.6 DiagramEditor.java --- src/org/eclipse/gmf/runtime/diagram/ui/parts/DiagramEditor.java 14 Oct 2005 20:50:55 -0000 1.6 +++ src/org/eclipse/gmf/runtime/diagram/ui/parts/DiagramEditor.java 2 Nov 2005 16:32:36 -0000 @@ -720,10 +720,13 @@ * @return the zoom manager */ protected ZoomManager getZoomManager() { - return ((DiagramRootEditPart) getGraphicalViewer().getRootEditPart()) - .getZoomManager(); + return ((DiagramRootEditPart) getRootEditPart()).getZoomManager(); } + private RootEditPart getRootEditPart() { + return getGraphicalViewer().getRootEditPart(); + } + /** * Convenience method to access the command manager associated with my * action manager. This command manager is used by my edit domain's @@ -925,8 +928,6 @@ } } - IPreferenceStore pluginStore = DiagramUIPlugin.getInstance() - .getPreferenceStore(); /** * Initializes the viewer's state from the workspace preference store. @@ -953,7 +954,7 @@ } // Get the Ruler Units properties - int rulerUnits = pluginStore + int rulerUnits = ((IPreferenceStore) ((DiagramRootEditPart) getRootEditPart()).getPreferencesHint().getPreferenceStore()) .getInt(IPreferenceConstants.PREF_RULER_UNITS); // Get the Guide Style @@ -964,8 +965,9 @@ if (guideStyle != null) { // Set the Vertical Ruler properties - DiagramRuler verticalRuler = new DiagramRuler(false, rulerUnits, - guideStyle); + DiagramRuler verticalRuler = ((DiagramRootEditPart) getRootEditPart()).getVerticalRuler(); + verticalRuler.setGuideStyle(guideStyle); + verticalRuler.setUnit(rulerUnits); DiagramRulerProvider vertProvider = new DiagramRulerProvider( verticalRuler); vertProvider.init(); @@ -973,14 +975,15 @@ RulerProvider.PROPERTY_VERTICAL_RULER, vertProvider); // Set the Horizontal Ruler properties - DiagramRuler horizontalRuler = new DiagramRuler(true, rulerUnits, - guideStyle); + DiagramRuler horizontalRuler = ((DiagramRootEditPart) getRootEditPart()).getHorizontalRuler(); + horizontalRuler.setGuideStyle(guideStyle); + horizontalRuler.setUnit(rulerUnits); DiagramRulerProvider horzProvider = new DiagramRulerProvider( horizontalRuler); horzProvider.init(); getDiagramGraphicalViewer().setProperty( RulerProvider.PROPERTY_HORIZONTAL_RULER, horzProvider); - + // Show/Hide Rulers getDiagramGraphicalViewer().setProperty( RulerProvider.PROPERTY_RULER_VISIBILITY,