/* This file is part of Green.
*
* Copyright (C) 2005 The Research Foundation of State University of New York
* All Rights Under Copyright Reserved, The Research Foundation of S.U.N.Y.
*
* Green is free software, licensed under the terms of the Eclipse
* Public License, version 1.0. The license is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package edu.buffalo.cse.green.preferences;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_AUTOGEN_MAIN;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_AUTOGEN_SUPER_CONSTR;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_AUTOGEN_ABST_METHOD;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_AUTOSAVE;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_DISPLAY_RELATIONSHIP_SUBTYPES;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_DRAW_LINE_WIDTH;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_FORCE_DIA_IN_PROJECT;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_GRID_SIZE;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_MANHATTAN_ROUTING;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_DISPLAY_INCREMENTAL_EXPLORER_DIA;
import static edu.buffalo.cse.green.preferences.PreferenceInitializer.P_AUTOARRANGE;
import org.eclipse.jface.preference.BooleanFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.jface.preference.ScaleFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import edu.buffalo.cse.green.PlugIn;
import edu.buffalo.cse.green.editor.DiagramEditor;
/**
* A preferences page tailored specifically to Green.
*
* @author bcmartin
*/
public class GreenPreferencePage extends FieldEditorPreferencePage
implements IWorkbenchPreferencePage {
public GreenPreferencePage() {
super(GRID);
setPreferenceStore(PlugIn.getDefault().getPreferenceStore());
//setDescription("A demonstration of a preference page implementation");
}
/**
* @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
*/
public void createFieldEditors() {
addField(new BooleanFieldEditor(P_FORCE_DIA_IN_PROJECT,
"Create all diagram files in project root",
0, getFieldEditorParent()));
addField(new BooleanFieldEditor(P_AUTOGEN_MAIN,
"Generate stubs for public static void main(String[] args)",
0, getFieldEditorParent()));
addField(new BooleanFieldEditor(P_AUTOGEN_SUPER_CONSTR,
"Generate stubs for constructors from superclass",
0, getFieldEditorParent()));
addField(new BooleanFieldEditor(P_AUTOGEN_ABST_METHOD,
"Generate stubs for inherited abstract methods",
0, getFieldEditorParent()));
addField(new StringFieldEditor(P_GRID_SIZE,
"Grid Size",
5, getFieldEditorParent()));
addField(new BooleanFieldEditor(
P_AUTOSAVE,
"Save compilation units automatically after code modification",
0, getFieldEditorParent()));
addField(new BooleanFieldEditor(P_DISPLAY_RELATIONSHIP_SUBTYPES,
"Show subtype names on relationship arcs",
0, getFieldEditorParent()));
addField(new BooleanFieldEditor(P_MANHATTAN_ROUTING,
"Use Manhattan routing",
0, getFieldEditorParent()));
addField(new BooleanFieldEditor(P_DISPLAY_INCREMENTAL_EXPLORER_DIA,
"Display Incremental Explorer Icons in Diagram Editor",
0, getFieldEditorParent()));
addField(new BooleanFieldEditor(P_AUTOARRANGE,
"Automatically Arrange Diagrams",
0, getFieldEditorParent()));
addField(new ScaleFieldEditor(P_DRAW_LINE_WIDTH,
"Relationship Line Width", getFieldEditorParent(),
0, 3, 1, 1));
adjustGridLayout();
}
/**
* @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
*/
public void init(IWorkbench workbench) {}
/**
* @see org.eclipse.jface.preference.IPreferencePage#performOk()
*/
public boolean performOk() {
boolean ok = super.performOk();
for (DiagramEditor editor : DiagramEditor.getEditors()) {
editor.refresh();
}
return ok;
}
}