com.archimatetool.editor.preferences.DiagramPreferencePage.java Source code

Java tutorial

Introduction

Here is the source code for com.archimatetool.editor.preferences.DiagramPreferencePage.java

Source

/**
 * This program and the accompanying materials
 * are made available under the terms of the License
 * which accompanies this distribution in the file LICENSE.txt
 */
package com.archimatetool.editor.preferences;

import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
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.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.PlatformUI;

/**
 * Diagram Preferences Page
 * 
 * @author Phillip Beauvoir
 */
public class DiagramPreferencePage extends PreferencePage
        implements IWorkbenchPreferencePage, IPreferenceConstants {
    private static String HELP_ID = "com.archimatetool.help.prefsDiagram"; //$NON-NLS-1$

    private Spinner fGridSizeSpinner;

    private Button fViewTooltipsButton;

    private Button fDoAnimationButton;
    private Spinner fAnimationSpeedSpinner;

    private Button fPaletteStateButton;

    private Button fViewpointsFilterModelTreeButton;
    private Button fViewpointsHidePaletteElementsButton;
    private Button fViewpointsGhostDiagramElementsButton;
    private Button fViewpointsHideDiagramElementsButton;
    private Button fViewpointsHideMagicConnectorElementsButton;

    private Button fEditNameOnNewObjectButton;

    private TabFolder fTabfolder;

    private DiagramFiguresPreferenceTab fDiagramFiguresPreferenceTab;
    private DiagramAppearancePreferenceTab fDiagramAppearancePreferenceTab;

    /**
     * Constructor
     */
    public DiagramPreferencePage() {
        setPreferenceStore(Preferences.STORE);
        //setDescription("Diagram Preferences.");
    }

    @Override
    protected Control createContents(Composite parent) {
        // Help
        PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, HELP_ID);

        fTabfolder = new TabFolder(parent, SWT.NONE);

        createGeneralTab();
        createAppearanceTab();
        createDefaultElementsTab();

        return fTabfolder;
    }

    private void createGeneralTab() {
        GridData gd;
        Label label;

        Composite client = new Composite(fTabfolder, SWT.NULL);
        client.setLayout(new GridLayout());

        TabItem item = new TabItem(fTabfolder, SWT.NONE);
        item.setText(Messages.DiagramPreferencePage_5);
        item.setControl(client);

        Composite c = new Composite(client, SWT.NULL);
        c.setLayout(new GridLayout(2, false));
        c.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        // Grid Size
        label = new Label(c, SWT.NULL);
        label.setText(Messages.DiagramPreferencePage_1);

        fGridSizeSpinner = new Spinner(c, SWT.BORDER);
        fGridSizeSpinner.setMinimum(5);
        fGridSizeSpinner.setMaximum(100);

        // -------------- Animation ----------------------------

        Group animationGroup = new Group(client, SWT.NULL);
        animationGroup.setText(Messages.DiagramPreferencePage_0);
        animationGroup.setLayout(new GridLayout(2, false));
        animationGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        // Animate Layout
        fDoAnimationButton = new Button(animationGroup, SWT.CHECK);
        fDoAnimationButton.setText(Messages.DiagramPreferencePage_2);
        gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.horizontalSpan = 2;
        fDoAnimationButton.setLayoutData(gd);

        // Animation Speed
        label = new Label(animationGroup, SWT.NULL);
        label.setText(Messages.DiagramPreferencePage_3);

        fAnimationSpeedSpinner = new Spinner(animationGroup, SWT.BORDER);
        fAnimationSpeedSpinner.setMinimum(10);
        fAnimationSpeedSpinner.setMaximum(500);

        // -------------- View ----------------------------

        Group viewGroup = new Group(client, SWT.NULL);
        viewGroup.setText(Messages.DiagramPreferencePage_4);
        viewGroup.setLayout(new GridLayout(1, false));
        viewGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        fPaletteStateButton = new Button(viewGroup, SWT.CHECK);
        fPaletteStateButton.setText(Messages.DiagramPreferencePage_6);
        gd = new GridData(GridData.FILL_HORIZONTAL);
        fPaletteStateButton.setLayoutData(gd);

        fViewTooltipsButton = new Button(viewGroup, SWT.CHECK);
        fViewTooltipsButton.setText(Messages.DiagramPreferencePage_7);
        gd = new GridData(GridData.FILL_HORIZONTAL);
        fViewTooltipsButton.setLayoutData(gd);

        fEditNameOnNewObjectButton = new Button(viewGroup, SWT.CHECK);
        fEditNameOnNewObjectButton.setText(Messages.DiagramPreferencePage_24);
        gd = new GridData(GridData.FILL_HORIZONTAL);
        fEditNameOnNewObjectButton.setLayoutData(gd);

        // -------------- Viewpoints ----------------------------

        Group viewpointsGroup = new Group(client, SWT.NULL);
        viewpointsGroup.setText(Messages.DiagramPreferencePage_13);
        viewpointsGroup.setLayout(new GridLayout(2, false));
        viewpointsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        fViewpointsFilterModelTreeButton = new Button(viewpointsGroup, SWT.CHECK);
        fViewpointsFilterModelTreeButton.setText(Messages.DiagramPreferencePage_14);
        gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.horizontalSpan = 2;
        fViewpointsFilterModelTreeButton.setLayoutData(gd);

        fViewpointsHidePaletteElementsButton = new Button(viewpointsGroup, SWT.CHECK);
        fViewpointsHidePaletteElementsButton.setText(Messages.DiagramPreferencePage_15);
        gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.horizontalSpan = 2;
        fViewpointsHidePaletteElementsButton.setLayoutData(gd);

        fViewpointsHideMagicConnectorElementsButton = new Button(viewpointsGroup, SWT.CHECK);
        fViewpointsHideMagicConnectorElementsButton.setText(Messages.DiagramPreferencePage_16);
        gd = new GridData(GridData.FILL_HORIZONTAL);
        gd.horizontalSpan = 2;
        fViewpointsHideMagicConnectorElementsButton.setLayoutData(gd);

        fViewpointsGhostDiagramElementsButton = new Button(viewpointsGroup, SWT.RADIO);
        fViewpointsGhostDiagramElementsButton.setText(Messages.DiagramPreferencePage_17);
        gd = new GridData(GridData.FILL_HORIZONTAL);
        fViewpointsGhostDiagramElementsButton.setLayoutData(gd);

        fViewpointsHideDiagramElementsButton = new Button(viewpointsGroup, SWT.RADIO);
        fViewpointsHideDiagramElementsButton.setText(Messages.DiagramPreferencePage_18);
        gd = new GridData(GridData.FILL_HORIZONTAL);
        fViewpointsHideDiagramElementsButton.setLayoutData(gd);

        setValues();
    }

    private void createDefaultElementsTab() {
        fDiagramFiguresPreferenceTab = new DiagramFiguresPreferenceTab();
        Composite client = fDiagramFiguresPreferenceTab.createContents(fTabfolder);

        TabItem item = new TabItem(fTabfolder, SWT.NONE);
        item.setText(Messages.DiagramPreferencePage_8);
        item.setControl(client);
    }

    private void createAppearanceTab() {
        fDiagramAppearancePreferenceTab = new DiagramAppearancePreferenceTab();
        Composite client = fDiagramAppearancePreferenceTab.createContents(fTabfolder);

        TabItem item = new TabItem(fTabfolder, SWT.NONE);
        item.setText(Messages.DiagramPreferencePage_9);
        item.setControl(client);
    }

    private void setValues() {
        setSpinnerValues();

        fDoAnimationButton.setSelection(getPreferenceStore().getBoolean(ANIMATE));

        fPaletteStateButton.setSelection(getPreferenceStore().getBoolean(PALETTE_STATE));
        fViewTooltipsButton.setSelection(getPreferenceStore().getBoolean(VIEW_TOOLTIPS));

        fViewpointsFilterModelTreeButton
                .setSelection(getPreferenceStore().getBoolean(VIEWPOINTS_FILTER_MODEL_TREE));
        fViewpointsHidePaletteElementsButton
                .setSelection(getPreferenceStore().getBoolean(VIEWPOINTS_HIDE_PALETTE_ELEMENTS));
        fViewpointsHideMagicConnectorElementsButton
                .setSelection(getPreferenceStore().getBoolean(VIEWPOINTS_HIDE_MAGIC_CONNECTOR_ELEMENTS));

        fViewpointsGhostDiagramElementsButton
                .setSelection(!getPreferenceStore().getBoolean(VIEWPOINTS_HIDE_DIAGRAM_ELEMENTS));
        fViewpointsHideDiagramElementsButton
                .setSelection(getPreferenceStore().getBoolean(VIEWPOINTS_HIDE_DIAGRAM_ELEMENTS));

        fEditNameOnNewObjectButton.setSelection(getPreferenceStore().getBoolean(EDIT_NAME_ON_NEW_OBJECT));
    }

    private void setSpinnerValues() {
        fGridSizeSpinner.setSelection(getPreferenceStore().getInt(GRID_SIZE));
        fAnimationSpeedSpinner.setSelection(getPreferenceStore().getInt(ANIMATION_SPEED));
    }

    @Override
    public boolean performOk() {
        getPreferenceStore().setValue(GRID_SIZE, fGridSizeSpinner.getSelection());

        getPreferenceStore().setValue(ANIMATE, fDoAnimationButton.getSelection());
        getPreferenceStore().setValue(ANIMATION_SPEED, fAnimationSpeedSpinner.getSelection());

        getPreferenceStore().setValue(PALETTE_STATE, fPaletteStateButton.getSelection());
        getPreferenceStore().setValue(VIEW_TOOLTIPS, fViewTooltipsButton.getSelection());

        getPreferenceStore().setValue(VIEWPOINTS_FILTER_MODEL_TREE,
                fViewpointsFilterModelTreeButton.getSelection());
        getPreferenceStore().setValue(VIEWPOINTS_HIDE_PALETTE_ELEMENTS,
                fViewpointsHidePaletteElementsButton.getSelection());
        getPreferenceStore().setValue(VIEWPOINTS_HIDE_MAGIC_CONNECTOR_ELEMENTS,
                fViewpointsHideMagicConnectorElementsButton.getSelection());
        getPreferenceStore().setValue(VIEWPOINTS_HIDE_DIAGRAM_ELEMENTS,
                fViewpointsHideDiagramElementsButton.getSelection());

        getPreferenceStore().setValue(EDIT_NAME_ON_NEW_OBJECT, fEditNameOnNewObjectButton.getSelection());

        fDiagramFiguresPreferenceTab.performOk();
        fDiagramAppearancePreferenceTab.performOk();

        return true;
    }

    @Override
    protected void performDefaults() {
        switch (fTabfolder.getSelectionIndex()) {
        case 0:
            performGeneralDefaults();
            break;

        case 1:
            fDiagramAppearancePreferenceTab.performDefaults();
            break;

        case 2:
            fDiagramFiguresPreferenceTab.performDefaults();
            break;

        default:
            break;
        }

        super.performDefaults();
    }

    private void performGeneralDefaults() {
        fGridSizeSpinner.setSelection(getPreferenceStore().getDefaultInt(GRID_SIZE));

        fDoAnimationButton.setSelection(getPreferenceStore().getDefaultBoolean(ANIMATE));
        fAnimationSpeedSpinner.setSelection(getPreferenceStore().getDefaultInt(ANIMATION_SPEED));

        fPaletteStateButton.setSelection(getPreferenceStore().getDefaultBoolean(PALETTE_STATE));
        fViewTooltipsButton.setSelection(getPreferenceStore().getDefaultBoolean(VIEW_TOOLTIPS));

        fViewpointsFilterModelTreeButton
                .setSelection(getPreferenceStore().getDefaultBoolean(VIEWPOINTS_FILTER_MODEL_TREE));
        fViewpointsHidePaletteElementsButton
                .setSelection(getPreferenceStore().getDefaultBoolean(VIEWPOINTS_HIDE_PALETTE_ELEMENTS));
        fViewpointsHideMagicConnectorElementsButton
                .setSelection(getPreferenceStore().getDefaultBoolean(VIEWPOINTS_HIDE_MAGIC_CONNECTOR_ELEMENTS));

        fViewpointsGhostDiagramElementsButton
                .setSelection(!getPreferenceStore().getDefaultBoolean(VIEWPOINTS_HIDE_DIAGRAM_ELEMENTS));
        fViewpointsHideDiagramElementsButton
                .setSelection(getPreferenceStore().getDefaultBoolean(VIEWPOINTS_HIDE_DIAGRAM_ELEMENTS));

        fEditNameOnNewObjectButton.setSelection(getPreferenceStore().getDefaultBoolean(EDIT_NAME_ON_NEW_OBJECT));
    }

    public void init(IWorkbench workbench) {
    }

}