| /******************************************************************************* |
| * Copyright (c) 2004, 2006 Sybase, Inc. and others. |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Sybase, Inc. - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jst.jsf.facesconfig.ui.preference; |
| |
| import org.eclipse.draw2d.ColorConstants; |
| import org.eclipse.jface.preference.BooleanFieldEditor; |
| import org.eclipse.jface.preference.ColorFieldEditor; |
| import org.eclipse.jface.preference.FieldEditorPreferencePage; |
| import org.eclipse.jface.preference.IPreferenceStore; |
| import org.eclipse.jface.preference.IntegerFieldEditor; |
| import org.eclipse.jface.preference.PreferenceConverter; |
| import org.eclipse.jface.resource.ColorRegistry; |
| import org.eclipse.jface.resource.JFaceResources; |
| import org.eclipse.jst.jsf.facesconfig.ui.EditorPlugin; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.events.SelectionAdapter; |
| import org.eclipse.swt.events.SelectionEvent; |
| import org.eclipse.swt.graphics.Color; |
| import org.eclipse.swt.graphics.Font; |
| import org.eclipse.swt.graphics.RGB; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.layout.GridLayout; |
| import org.eclipse.swt.widgets.Button; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Group; |
| import org.eclipse.ui.IWorkbench; |
| import org.eclipse.ui.IWorkbenchPreferencePage; |
| |
| /** |
| * This class represents a preference page that is contributed to the |
| * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage </samp>, |
| * we can use the field support built into JFace that allows us to create a page |
| * that is small and knows how to save, restore and apply itself. |
| * <p> |
| * This page is used to modify preferences only. They are stored in the |
| * preference store that belongs to the main plug-in class. That way, |
| * preferences can be accessed directly via the preference store. |
| */ |
| |
| public class GEMPreferences extends FieldEditorPreferencePage implements |
| IWorkbenchPreferencePage { |
| // appearance |
| /** |
| * Key for preference for whether or not the intro editor should be shown |
| */ |
| public final static String SHOW_INTRO_EDITOR = "ShowIntroEditor"; //$NON-NLS-1$ |
| |
| public final static String USE_SYSTEM_COLORS = "UseSystemColors"; //$NON-NLS-1$ |
| |
| public final static String CANVAS_COLOR = "CanvasColor"; //$NON-NLS-1$ |
| |
| public final static String FIGURE_LABEL_FONT = "FigureLabelFont"; //$NON-NLS-1$ |
| |
| public final static String FIGURE_LABEL_FONT_COLOR = "FigureLabelFontColor"; //$NON-NLS-1$ |
| |
| public final static String LABEL_PLACEMENT = "LabelPlacement"; //$NON-NLS-1$ |
| |
| public final static String INPUT_PORT_COLOR = "InputPortColor"; //$NON-NLS-1$ |
| |
| public final static String OUTPUT_PORT_COLOR = "OutputPortColor"; //$NON-NLS-1$ |
| |
| public final static String SHOW_LINE_LABELS = "ShowLineLabels"; //$NON-NLS-1$ |
| |
| public final static String LINE_LABEL_FONT = "LineLabelFont"; //$NON-NLS-1$ |
| |
| public final static String LINE_LABEL_FONT_COLOR = "LineLabelFontColor"; //$NON-NLS-1$ |
| |
| public final static String LINE_LABEL_COLOR = "LineLabelColor"; //$NON-NLS-1$ |
| |
| public final static String LINE_WIDTH = "LineWidth"; //$NON-NLS-1$ |
| |
| public final static String LINE_COLOR = "LineColor"; //$NON-NLS-1$ |
| |
| public final static String LINE_ROUTING = "LineRouting"; //$NON-NLS-1$ |
| |
| public final static String SNAP_TO_GRID = "SnapToGrid"; //$NON-NLS-1$ |
| |
| public final static String SNAP_TO_GEOMETRY = "SnapToGeometry"; //$NON-NLS-1$ |
| |
| public final static String GRID_WIDTH = "GridWidth"; //$NON-NLS-1$ |
| |
| public final static String GRID_HEIGHT = "GridHeight"; //$NON-NLS-1$ |
| |
| public final static String GRID_COLOR = "GridColor"; //$NON-NLS-1$ |
| |
| public final static String LABEL_PLACEMENT_TOP = "Top"; //$NON-NLS-1$ |
| |
| public final static String LABEL_PLACEMENT_BOTTOM = "Bottom"; //$NON-NLS-1$ |
| |
| public final static String LABEL_PLACEMENT_LEFT = "Left"; //$NON-NLS-1$ |
| |
| public final static String LABEL_PLACEMENT_RIGHT = "Right"; //$NON-NLS-1$ |
| |
| // "Direct" routing was intended for connections lines without bendpoints; |
| // this has been removed because it is unnecessary. |
| // public final static String LINE_ROUTING_DIRECT = "Direct"; |
| // "Manhattan" line routing creates orthogonal lines |
| public final static String LINE_ROUTING_MANHATTAN = "Manhattan"; //$NON-NLS-1$ |
| |
| // "Manual" routing allows user to create bendpoints |
| public final static String LINE_ROUTING_MANUAL = "Manaul"; //$NON-NLS-1$ |
| |
| private final static String[][] m_lineRoutingLabels = { |
| // display, key |
| // { GEMPlugin.getResourceString("CanvasPreferences.LABEL.Direct"), |
| // LINE_ROUTING_DIRECT }, //$NON-NLS-1$ //$NON-NLS-2$ |
| { |
| PreferenceMessages.CanvasPreferences_LABEL_Manual, LINE_ROUTING_MANUAL }, //$NON-NLS-1$ //$NON-NLS-2$ |
| { |
| PreferenceMessages.CanvasPreferences_LABEL_Manhattan, LINE_ROUTING_MANHATTAN } //$NON-NLS-1$ //$NON-NLS-2$ |
| }; |
| |
| private final static String[][] m_labelPlacementLabels = { |
| { |
| PreferenceMessages.CanvasPreferences_LABEL_Top, LABEL_PLACEMENT_TOP }, //$NON-NLS-1$ //$NON-NLS-2$ |
| { |
| PreferenceMessages.CanvasPreferences_LABEL_Bottom, LABEL_PLACEMENT_BOTTOM }, //$NON-NLS-1$ //$NON-NLS-2$ |
| { |
| PreferenceMessages.CanvasPreferences_LABEL_Left, LABEL_PLACEMENT_LEFT }, //$NON-NLS-1$ //$NON-NLS-2$ |
| { |
| PreferenceMessages.CanvasPreferences_LABEL_Right, LABEL_PLACEMENT_RIGHT } //$NON-NLS-1$ //$NON-NLS-2$ |
| }; |
| |
| private Group canvasGroup; |
| |
| private Group iconGroup; |
| |
| private Group lineGroup; |
| |
| private BooleanField useSystemColors; |
| |
| private ColorFieldEditor canvasColor; |
| |
| private BooleanField snapToGrid; |
| |
| private IntegerFieldEditor gridWidth; |
| |
| private IntegerFieldEditor gridHeight; |
| |
| private ColorFieldEditor gridColor; |
| |
| private BooleanField showLineLabels; |
| |
| private ColorFieldEditor lineLabelColor; |
| |
| private ColorFieldEditor lineColor; |
| |
| private ColorFontFieldEditor iconFont; |
| |
| private ColorFontFieldEditor lineFont; |
| |
| // private ColorFieldEditor inputPortColor; |
| // |
| // private ColorFieldEditor outputPortColor; |
| |
| // CR392586: resource leaks |
| // at least keep leaks bounded... |
| // private static Hashtable resourceRegistry = new Hashtable(); |
| |
| private class BooleanField extends BooleanFieldEditor { |
| private Composite parent; |
| |
| /** |
| * @param name |
| * @param label |
| * @param parent |
| */ |
| public BooleanField(String name, String label, Composite parent) { |
| super(name, label, parent); |
| this.parent = parent; |
| } |
| |
| /** |
| * @return the change control button |
| */ |
| public Button getButton() { |
| return getChangeControl(parent); |
| } |
| } |
| |
| /** |
| * Constructor |
| */ |
| public GEMPreferences() { |
| super(GRID); |
| // FIXME: we should be encapsulating what pref store is used for all callers of this class |
| setPreferenceStore(EditorPlugin.getDefault().getPreferenceStore()); |
| setDescription(PreferenceMessages.GEMPreferences_description); |
| initializeDefaults(); |
| } |
| |
| /** |
| * Sets the default values of the preferences. |
| */ |
| private void initializeDefaults() { |
| IPreferenceStore store = getPreferenceStore(); |
| Font f = JFaceResources.getFontRegistry().get( |
| JFaceResources.DEFAULT_FONT); |
| |
| store.setDefault(SHOW_INTRO_EDITOR, true); |
| store.setDefault(USE_SYSTEM_COLORS, true); |
| PreferenceConverter.setDefault(store, CANVAS_COLOR, new RGB(255, 255, |
| 255)); |
| PreferenceConverter.setDefault(store, FIGURE_LABEL_FONT, f |
| .getFontData()); |
| store.setDefault(LINE_WIDTH, 1); |
| store.setDefault(LINE_ROUTING, getLineRoutingLabels()[0][1]); |
| store.setDefault(SHOW_LINE_LABELS, true); |
| PreferenceConverter.setDefault(store, LINE_COLOR, new RGB(0, 0, 0)); |
| PreferenceConverter.setDefault(store, LINE_LABEL_COLOR, new RGB(255, |
| 255, 255)); |
| PreferenceConverter.setDefault(store, LINE_LABEL_FONT, f.getFontData()); |
| store.setDefault(SNAP_TO_GEOMETRY, true); |
| store.setDefault(SNAP_TO_GRID, true); |
| store.setDefault(GRID_WIDTH, 12); |
| store.setDefault(GRID_HEIGHT, 12); |
| PreferenceConverter.setDefault(store, GRID_COLOR, |
| new RGB(230, 230, 230)); |
| } |
| |
| /** |
| * Creates the field editors. Field editors are abstractions of the common |
| * GUI blocks needed to manipulate various types of preferences. Each field |
| * editor knows how to save and restore itself. |
| */ |
| |
| public void createFieldEditors() { |
| |
| // note, we aren't saving the reference. It's assumed that parent |
| // worries about destruction, persistence etc. |
| addBooleanField( |
| SHOW_INTRO_EDITOR, |
| PreferenceMessages.EditorPreferences_LABEL_ShowIntroEditor, |
| getFieldEditorParent()); |
| |
| useSystemColors = addBooleanField( |
| USE_SYSTEM_COLORS, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_UseSystemColors, |
| getFieldEditorParent()); |
| |
| canvasGroup = new Group(getFieldEditorParent(), SWT.NULL); |
| lineGroup = new Group(getFieldEditorParent(), SWT.NULL); |
| iconGroup = new Group(getFieldEditorParent(), SWT.NULL); |
| |
| canvasGroup.setText(PreferenceMessages.CanvasPreferenceTab_LABEL_Canvas); //$NON-NLS-1$ |
| canvasColor = addColorField( |
| CANVAS_COLOR, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_BackgroundColor, canvasGroup); //$NON-NLS-1$ |
| addBooleanField( |
| SNAP_TO_GEOMETRY, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_SnapToGeometry, canvasGroup); //$NON-NLS-1$ |
| snapToGrid = addBooleanField( |
| SNAP_TO_GRID, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_SnapToGrid, canvasGroup); //$NON-NLS-1$ |
| gridColor = addColorField( |
| GRID_COLOR, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_GridLineColor, canvasGroup); //$NON-NLS-1$ |
| gridWidth = addIntegerField( |
| GRID_WIDTH, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_GridWidth, canvasGroup); //$NON-NLS-1$ |
| gridHeight = addIntegerField( |
| GRID_HEIGHT, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_GridHeight, canvasGroup); //$NON-NLS-1$ |
| |
| iconGroup.setText(PreferenceMessages.CanvasPreferenceTab_LABEL_IconGroup); //$NON-NLS-1$ |
| iconFont = addFontField( |
| FIGURE_LABEL_FONT, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_IconLabelFont, iconGroup); //$NON-NLS-1$ |
| addComboField(LABEL_PLACEMENT, PreferenceMessages.CanvasPreferenceTab_LABEL_LabelPlacement, //$NON-NLS-1$ |
| getLabelPlacementLabels(), iconGroup); |
| // inputPortColor = addColorField( |
| // INPUT_PORT_COLOR, |
| // EditorPlugin |
| // .getResourceString("CanvasPreferenceTab.LABEL.InputPortColor"), |
| // iconGroup); //$NON-NLS-1$ |
| // outputPortColor = addColorField( |
| // OUTPUT_PORT_COLOR, |
| // EditorPlugin |
| // .getResourceString("CanvasPreferenceTab.LABEL.OutputPortColor"), |
| // iconGroup); //$NON-NLS-1$ |
| |
| lineGroup.setText(PreferenceMessages.CanvasPreferenceTab_LABEL_LineGroup); //$NON-NLS-1$ |
| showLineLabels = addBooleanField(SHOW_LINE_LABELS, PreferenceMessages.CanvasPreferenceTab_LABEL_ShowLineLabels, |
| lineGroup); |
| lineFont = addFontField( |
| LINE_LABEL_FONT, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_LineLabelFont, lineGroup); //$NON-NLS-1$ |
| lineLabelColor = addColorField( |
| LINE_LABEL_COLOR, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_LineLabelColor, lineGroup); //$NON-NLS-1$ |
| lineColor = addColorField( |
| LINE_COLOR, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_LineColor, lineGroup); //$NON-NLS-1$ |
| addIntegerField( |
| LINE_WIDTH, |
| PreferenceMessages.CanvasPreferenceTab_LABEL_LineWidth, lineGroup); //$NON-NLS-1$ |
| addComboField(LINE_ROUTING, PreferenceMessages.CanvasPreferenceTab_LABEL_LineRouting, //$NON-NLS-1$ |
| getLineRoutingLabels(), lineGroup); |
| } |
| |
| protected void initialize() { |
| // Color use: Default canvas colors should pick up system defaults |
| // enable or disable all of the color and font selection controls in the |
| // preference dialog |
| // depending on whether the "Use System Colors" checkbox is selected. |
| super.initialize(); |
| |
| ((GridLayout) getFieldEditorParent().getLayout()).numColumns = 2; |
| |
| canvasGroup.setLayout(new GridLayout(3, false)); |
| canvasGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL |
| | GridData.VERTICAL_ALIGN_BEGINNING)); |
| canvasColor.fillIntoGrid(canvasGroup, 3); |
| gridColor.fillIntoGrid(canvasGroup, 3); |
| |
| iconGroup.setLayout(new GridLayout(3, false)); |
| iconGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL |
| | GridData.VERTICAL_ALIGN_BEGINNING)); |
| iconFont.fillIntoGrid(iconGroup, 3); |
| |
| lineGroup.setLayout(new GridLayout(3, false)); |
| lineGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL |
| | GridData.VERTICAL_ALIGN_BEGINNING)); |
| lineColor.fillIntoGrid(lineGroup, 3); |
| lineLabelColor.fillIntoGrid(lineGroup, 3); |
| lineFont.fillIntoGrid(lineGroup, 3); |
| |
| boolean userColorsValue = !useSystemColors.getBooleanValue(); |
| boolean showLineLabelsValue = showLineLabels.getBooleanValue(); |
| boolean snapToGridValue = snapToGrid.getBooleanValue(); |
| canvasColor.setEnabled(userColorsValue, canvasGroup); |
| gridColor.setEnabled(snapToGridValue && userColorsValue, canvasGroup); |
| iconFont.setEnabled(userColorsValue, iconGroup); |
| // inputPortColor.setEnabled(userColorsValue, iconGroup); |
| // outputPortColor.setEnabled(userColorsValue, iconGroup); |
| lineColor.setEnabled(userColorsValue, lineGroup); |
| lineLabelColor.setEnabled(showLineLabelsValue && userColorsValue, |
| lineGroup); |
| lineFont.setEnabled(showLineLabelsValue && userColorsValue, lineGroup); |
| gridWidth.setEnabled(snapToGridValue, canvasGroup); |
| gridHeight.setEnabled(snapToGridValue, canvasGroup); |
| |
| useSystemColors.getButton().addSelectionListener( |
| new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| boolean userColorsValue_ = !useSystemColors |
| .getBooleanValue(); |
| boolean showLineLabelsValue_ = showLineLabels |
| .getBooleanValue(); |
| boolean snapToGridValue_ = snapToGrid.getBooleanValue(); |
| |
| canvasColor.setEnabled(userColorsValue_, canvasGroup); |
| gridColor |
| .setEnabled(snapToGridValue_ && userColorsValue_, |
| canvasGroup); |
| iconFont.setEnabled(userColorsValue_, iconGroup); |
| // inputPortColor.setEnabled(userColorsValue, |
| // iconGroup); |
| // outputPortColor.setEnabled(userColorsValue, |
| // iconGroup); |
| lineColor.setEnabled(userColorsValue_, lineGroup); |
| lineLabelColor.setEnabled(showLineLabelsValue_ |
| && userColorsValue_, lineGroup); |
| lineFont.setEnabled(showLineLabelsValue_ |
| && userColorsValue_, lineGroup); |
| } |
| }); |
| |
| showLineLabels.getButton().addSelectionListener(new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| boolean userColorsValue_ = !useSystemColors.getBooleanValue(); |
| boolean showLineLabelsValue_ = showLineLabels.getBooleanValue(); |
| lineLabelColor.setEnabled(showLineLabelsValue_ |
| && userColorsValue_, lineGroup); |
| lineFont.setEnabled(showLineLabelsValue_ && userColorsValue_, |
| lineGroup); |
| } |
| }); |
| |
| snapToGrid.getButton().addSelectionListener(new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent e) { |
| boolean userColorsValue_ = !useSystemColors.getBooleanValue(); |
| boolean snapToGridValue_ = snapToGrid.getBooleanValue(); |
| |
| gridColor.setEnabled(snapToGridValue_ && userColorsValue_, |
| canvasGroup); |
| gridWidth.setEnabled(snapToGridValue_, canvasGroup); |
| gridHeight.setEnabled(snapToGridValue_, canvasGroup); |
| } |
| }); |
| |
| } |
| |
| public void init(IWorkbench workbench) { |
| // no initialization |
| } |
| |
| private ColorFieldEditor addColorField(String name, String labelText, |
| Composite parent) { |
| ColorFieldEditor f = new ColorFieldEditor(name, labelText, parent); |
| addField(f); |
| return f; |
| } |
| |
| private ComboFieldEditor addComboField(String name, String labelText, |
| String[][] entryNamesAndValues, Composite parent) { |
| ComboFieldEditor f = new ComboFieldEditor(name, labelText, |
| entryNamesAndValues, parent); |
| addField(f); |
| return f; |
| } |
| |
| private IntegerFieldEditor addIntegerField(String name, String labelText, |
| Composite parent) { |
| IntegerFieldEditor f = new IntegerFieldEditor(name, labelText, parent); |
| addField(f); |
| return f; |
| } |
| |
| private BooleanField addBooleanField(String name, String labelText, |
| Composite parent) { |
| BooleanField f = new BooleanField(name, labelText, parent); |
| addField(f); |
| return f; |
| } |
| |
| // private StringFieldEditor addStringField(String name, String labelText, |
| // Composite parent) { |
| // StringFieldEditor f = new StringFieldEditor(name, labelText, parent); |
| // addField(f); |
| // return f; |
| // } |
| |
| // protected NumberField addNumberField(String name, String labelText, |
| // Composite parent) |
| // { |
| // NumberField f = new NumberField(name,labelText,parent); |
| // addField(f); |
| // return f; |
| // } |
| |
| private ColorFontFieldEditor addFontField(String name, String labelText, |
| Composite parent) { |
| ColorFontFieldEditor f = new ColorFontFieldEditor(name, labelText, |
| parent); |
| addField(f); |
| return f; |
| } |
| |
| private static String[][] getLineRoutingLabels() { |
| return m_lineRoutingLabels; |
| } |
| |
| private static String[][] getLabelPlacementLabels() { |
| return m_labelPlacementLabels; |
| } |
| |
| // private static void propagateProperty(String property, EditPart part) { |
| // Iterator iter = part.getChildren().iterator(); |
| // while (iter.hasNext()) { |
| // EditPart child = (EditPart) iter.next(); |
| // Figure fig = (Figure) ((GraphicalEditPart) child).getFigure(); |
| // GEMPreferences.propagateProperty(property, fig); |
| // propagateProperty(property, child); |
| // } |
| // } |
| |
| /** |
| * @return true if the preference is set to show the introduction |
| * editor. false otherwise. |
| */ |
| public static boolean getShowIntroEditor() |
| { |
| IPreferenceStore store = EditorPlugin.getDefault().getPreferenceStore(); |
| return store.getBoolean(SHOW_INTRO_EDITOR); |
| } |
| |
| /** |
| * @param store |
| * @param property |
| * @return the color property for the key 'property' |
| */ |
| public static Color getColor(IPreferenceStore store, String property) { |
| boolean useSystemColors = store.getBoolean(USE_SYSTEM_COLORS); |
| |
| Color c = ColorConstants.black; |
| if (useSystemColors) { |
| if (GRID_COLOR.equals(property)) |
| // c = ColorConstants.buttonDarkest; |
| c = ColorConstants.button; |
| if (LINE_COLOR.equals(property)) |
| c = ColorConstants.listForeground; |
| if (LINE_LABEL_FONT_COLOR.equals(property)) |
| c = ColorConstants.listForeground; |
| if (LINE_LABEL_COLOR.equals(property)) |
| c = ColorConstants.listBackground; |
| if (CANVAS_COLOR.equals(property)) |
| c = ColorConstants.listBackground; |
| if (INPUT_PORT_COLOR.equals(property)) |
| c = ColorConstants.listForeground; |
| if (OUTPUT_PORT_COLOR.equals(property)) |
| c = ColorConstants.listForeground; |
| if (FIGURE_LABEL_FONT_COLOR.equals(property)) |
| c = ColorConstants.listForeground; |
| } else { |
| // CR392586: resource leaks |
| RGB rgb = PreferenceConverter.getColor(store, property); |
| ColorRegistry registry = JFaceResources.getColorRegistry(); |
| if (registry.get(rgb.toString()) != null) |
| return registry.get(rgb.toString()); |
| registry.put(rgb.toString(), rgb); |
| c = registry.get(rgb.toString()); |
| } |
| return c; |
| } |
| |
| // // CR392586: resource leaks |
| // private static Font getFont(IPreferenceStore store, String property) { |
| // FontData fd = PreferenceConverter.getFontData(store, property); |
| // FontRegistry registry = JFaceResources.getFontRegistry(); |
| // if (!registry.get(fd.toString()).equals(registry.defaultFont())) |
| // return registry.get(fd.toString()); |
| // |
| // registry.put(fd.toString(), new FontData[] {fd}); |
| // return registry.get(fd.toString()); |
| // } |
| |
| // private static void propagateProperty(String property, Figure fig) { |
| // IPreferenceStore store = EditorPlugin.getDefault().getPreferenceStore(); |
| // WindowFigure window = null; |
| // IconFigure icon = null; |
| // LinkFigure link = null; |
| // if (fig instanceof CompoundNodeFigure) { |
| // window = ((CompoundNodeFigure) fig).getWindowFigure(); |
| // icon = ((CompoundNodeFigure) fig).getIconFigure(); |
| // } else if (fig instanceof WindowFigure) |
| // window = (WindowFigure) fig; |
| // else if (fig instanceof LinkFigure) |
| // link = (LinkFigure) fig; |
| // |
| // if (property != null && property.equals(USE_SYSTEM_COLORS)) |
| // // reload all properties - it's easiest |
| // property = null; |
| // |
| // if (property == null || SNAP_TO_GRID.equals(property)) { |
| // boolean b = store.getBoolean(SNAP_TO_GRID); |
| // WindowFigure.defaultGridEnabled = b; |
| // |
| // if (window != null) |
| // window.getGridLayer().setVisible(b); |
| // } |
| // |
| // if (property == null || GRID_WIDTH.equals(property) |
| // || GRID_HEIGHT.equals(property)) { |
| // Dimension d = new Dimension(store.getInt(GRID_WIDTH), store |
| // .getInt(GRID_HEIGHT)); |
| // WindowFigure.defaultGridSpacing = d; |
| // |
| // if (window != null) |
| // window.getGridLayer().setSpacing(d); |
| // } |
| // |
| // if (property == null || GRID_COLOR.equals(property)) { |
| // Color c = getColor(store, GRID_COLOR); |
| // WindowFigure.defaultGridColor = c; |
| // |
| // if (window != null) |
| // window.getGridLayer().setForegroundColor(c); |
| // } |
| // |
| // // TODO: since the line router is managed by the EditPart for the |
| // // container figure, setting the line routing style in the WindowFigure |
| // // does not change the line routing immediately. The editor must be |
| // // restarted for line routing to take effect. |
| // if (property == null || LINE_ROUTING.equals(property)) { |
| // String s = store.getString(LINE_ROUTING); |
| // int style; |
| // if (LINE_ROUTING_MANHATTAN.equals(s)) |
| // style = WindowFigure.LINE_ROUTING_MANHATTAN; |
| // else |
| // style = WindowFigure.LINE_ROUTING_MANUAL; |
| // |
| // WindowFigure.defaultLineRoutingStyle = style; |
| // if (window != null) |
| // window.setLineRoutingStyle(style); |
| // } |
| // |
| // if (property == null || LINE_WIDTH.equals(property)) { |
| // int w = store.getInt(LINE_WIDTH); |
| // LinkFigure.defaultLineWidth = w; |
| // |
| // if (link != null) |
| // link.setLineWidth(w); |
| // } |
| // |
| // if (property == null || LINE_COLOR.equals(property)) { |
| // Color c = getColor(store, LINE_COLOR); |
| // LinkFigure.defaultLineColor = c; |
| // |
| // if (link != null) |
| // link.setForegroundColor(c); |
| // } |
| // |
| // if (property == null || SHOW_LINE_LABELS.equals(property)) { |
| // boolean b = store.getBoolean(SHOW_LINE_LABELS); |
| // LinkFigure.defaultLabelVisible = b; |
| // |
| // if (link != null) |
| // link.setLabelVisible(b); |
| // } |
| // |
| // if (property == null || LINE_LABEL_FONT.equals(property) |
| // || LINE_LABEL_FONT_COLOR.equals(property)) { |
| // // CR392586: resource leaks |
| // Font f = getFont(store, LINE_LABEL_FONT); |
| // Color c = getColor(store, LINE_LABEL_FONT_COLOR); |
| // LinkFigure.defaultFont = f; |
| // LinkFigure.defaultLabelForeground = c; |
| // |
| // if (link != null) { |
| // link.setFont(f); |
| // link.setLabelForeground(c); |
| // } |
| // } |
| // |
| // if (property == null || LINE_LABEL_COLOR.equals(property)) { |
| // Color c = getColor(store, LINE_LABEL_COLOR); |
| // LinkFigure.defaultLabelBackground = c; |
| // |
| // if (link != null) |
| // link.setLabelBackground(c); |
| // } |
| // |
| // if (property == null || CANVAS_COLOR.equals(property)) { |
| // Color c = getColor(store, CANVAS_COLOR); |
| // WindowFigure.defaultBackgroundColor = c; |
| // |
| // if (window != null) |
| // window.setBackgroundColor(c); |
| // if (icon != null) |
| // icon.setBackgroundColor(c); |
| // } |
| // |
| // if (property == null || INPUT_PORT_COLOR.equals(property)) { |
| // Color c = getColor(store, INPUT_PORT_COLOR); |
| // InputPortFigure.defaultForegroundColor = c; |
| // |
| // if (fig instanceof InputPortFigure) |
| // fig.setForegroundColor(c); |
| // } |
| // |
| // if (property == null || OUTPUT_PORT_COLOR.equals(property)) { |
| // Color c = getColor(store, OUTPUT_PORT_COLOR); |
| // OutputPortFigure.defaultForegroundColor = c; |
| // |
| // if (fig instanceof OutputPortFigure) |
| // fig.setForegroundColor(c); |
| // } |
| // |
| // if (property == null || FIGURE_LABEL_FONT.equals(property) |
| // || FIGURE_LABEL_FONT_COLOR.equals(property)) { |
| // // CR392586: resource leaks |
| // Font f = getFont(store, FIGURE_LABEL_FONT); |
| // Color c = getColor(store, FIGURE_LABEL_FONT_COLOR); |
| // IconFigure.defaultFont = f; |
| // IconFigure.defaultForegroundColor = c; |
| // WindowFigure.defaultFont = f; |
| // WindowFigure.defaultForegroundColor = c; |
| // |
| // if (window != null) { |
| // window.setFont(f); |
| // window.setForegroundColor(c); |
| // } |
| // if (icon != null) { |
| // icon.setFont(f); |
| // icon.setForegroundColor(c); |
| // } |
| // if (fig instanceof IconFigure) { |
| // fig.setFont(f); |
| // fig.setForegroundColor(c); |
| // } |
| // } |
| // |
| // if (property == null || LABEL_PLACEMENT.equals(property)) { |
| // int placement = PositionConstants.SOUTH; |
| // String s = store.getString(LABEL_PLACEMENT); |
| // if (LABEL_PLACEMENT_TOP.equals(s)) |
| // placement = PositionConstants.NORTH; |
| // if (LABEL_PLACEMENT_BOTTOM.equals(s)) |
| // placement = PositionConstants.SOUTH; |
| // if (LABEL_PLACEMENT_LEFT.equals(s)) |
| // placement = PositionConstants.WEST; |
| // if (LABEL_PLACEMENT_RIGHT.equals(s)) |
| // placement = PositionConstants.EAST; |
| // IconFigure.defaultTextPlacement = placement; |
| // |
| // if (icon != null) |
| // icon.setTextPlacement(placement); |
| // if (fig instanceof IconFigure) |
| // ((IconFigure) fig).setTextPlacement(placement); |
| // } |
| // |
| // Iterator iter = fig.getChildren().iterator(); |
| // while (iter.hasNext()) { |
| // Figure child = (Figure) iter.next(); |
| // propagateProperty(property, child); |
| // } |
| // } |
| } |