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,