Changeset 3880 for devel-tools
- Timestamp:
- Jul 27, 2008, 7:52:43 PM (12 years ago)
- Location:
- devel-tools/trunk/eclipse/org.refal.rfpdt.ui/src/org/refal/rfpdt/ui/preferences
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
devel-tools/trunk/eclipse/org.refal.rfpdt.ui/src/org/refal/rfpdt/ui/preferences/CodeStylePreferencePage.java
r3870 r3880 1 1 package org.refal.rfpdt.ui.preferences; 2 2 3 import java.util.ArrayList;4 5 import org.eclipse.core.resources.IProject;6 import org.eclipse.core.resources.IResource;7 import org.eclipse.core.resources.ResourcesPlugin;8 import org.eclipse.core.runtime.CoreException;9 import org.eclipse.core.runtime.IAdaptable;10 import org.eclipse.jface.dialogs.Dialog;11 import org.eclipse.jface.dialogs.MessageDialog;12 import org.eclipse.jface.preference.FieldEditorPreferencePage;13 import org.eclipse.jface.preference.IPreferenceStore;14 import org.eclipse.jface.window.Window;15 import org.eclipse.swt.SWT;16 import org.eclipse.swt.events.SelectionAdapter;17 import org.eclipse.swt.events.SelectionEvent;18 import org.eclipse.swt.events.SelectionListener;19 import org.eclipse.swt.layout.GridData;20 import org.eclipse.swt.layout.GridLayout;21 import org.eclipse.swt.widgets.Composite;22 import org.eclipse.swt.widgets.Group;23 import org.eclipse.swt.widgets.Label;24 import org.eclipse.swt.widgets.Link;25 import org.eclipse.ui.IWorkbench;26 import org.eclipse.ui.IWorkbenchPreferencePage;27 import org.eclipse.ui.IWorkbenchPropertyPage;28 import org.eclipse.ui.dialogs.ElementListSelectionDialog;29 import org.eclipse.ui.dialogs.PreferencesUtil;30 import org.eclipse.ui.model.WorkbenchLabelProvider;31 import org.refal.rfpdt.core.RfpCore;32 import org.refal.rfpdt.ui.RfpUI;33 3 import org.refal.rfpdt.ui.preferences.SyntaxColoringPreferencePage.ModifiableBooleanFieldEditor; 34 4 import org.refal.rfpdt.ui.preferences.SyntaxColoringPreferencePage.ModifiableIntegerFieldEditor; 35 5 36 public class CodeStylePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage, IWorkbenchPropertyPage { 37 private IPreferenceStore store; 38 private IProject project; 39 private SelectionListener projectSpecificListner; 40 41 private Composite codeStyle; 6 public class CodeStylePreferencePage extends CompilerPreferencePage { 42 7 private ModifiableBooleanFieldEditor booleanFieldEditor; 43 8 private ModifiableIntegerFieldEditor integerFieldEditor; 44 9 45 public CodeStylePreferencePage () { 46 super(GRID); 47 store = RfpUI.getPluginPreferenceStore(); 48 setPreferenceStore(store); 10 protected String propertiesUrl () { 11 return "org.refal.rfpdt.editor.property.codeStylePreferencePage"; 49 12 } 50 13 51 protected void performDefaults () { 52 super.performDefaults(); 53 if (projectSpecificListner != null) { 54 booleanFieldEditor.setEnabled(false, codeStyle); 55 integerFieldEditor.setEnabled(false, codeStyle); 56 booleanFieldEditor.setBooleanValue(store.getBoolean(booleanFieldEditor.getPreferenceName())); 57 integerFieldEditor.setIntValue(store.getInt(integerFieldEditor.getPreferenceName())); 58 } 14 protected String preferenceUrl () { 15 return "org.refal.rfpdt.editor.preferences.codeStylePreferencePage"; 59 16 } 60 17 61 protected Label createDescriptionLabel (final Composite parent) { 62 Link title; 63 if (project == null) { 64 title = new Link(parent, SWT.NONE); 65 title.setText("<a href=\"org.refal.rfpdt.editor.property.codeStylePreferencePage\">Configure Project Specific Settings...</a>"); 66 } else { 67 Composite labelComposite = new Composite(parent, SWT.NONE); 68 GridLayout layout = new GridLayout(2, false); 69 layout.marginHeight = 0; 70 layout.marginWidth = 0; 71 labelComposite.setLayout(layout); 72 labelComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 73 74 Composite c1 = new Composite(labelComposite, SWT.NONE); 75 c1.setLayout(new GridLayout()); 76 c1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 77 78 final ModifiableBooleanFieldEditor modifiableBooleanFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.USE_PROJECT_SPECIFIC, "Enable project specific settings", c1); 79 addField(modifiableBooleanFieldEditor); 80 modifiableBooleanFieldEditor.addSelectionListener(projectSpecificListner = new SelectionListener() { 81 public void widgetSelected (SelectionEvent e) { 82 if (modifiableBooleanFieldEditor.getBooleanValue()) { 83 booleanFieldEditor.setEnabled(true, codeStyle); 84 integerFieldEditor.setEnabled(true, codeStyle); 85 } else 86 performDefaults(); 87 } 88 public void widgetDefaultSelected (SelectionEvent e) { 89 widgetSelected(e); 90 } 91 }); 92 93 title = new Link(labelComposite, SWT.NONE); 94 title.setText("<a href=\"org.refal.rfpdt.editor.preferences.codeStylePreferencePage\">Configure Workspace Settings...</a>"); 95 } 96 title.addSelectionListener(new SelectionAdapter() { 97 public void widgetSelected (SelectionEvent e) { 98 try { 99 if (project == null) { 100 IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); 101 ArrayList<IProject> rfpProjects = new ArrayList<IProject>(projects.length); 102 for (IProject project : projects) { 103 if (project.isOpen() && project.getNature(RfpCore.NATURE_ID) != null) 104 rfpProjects.add(project); 105 } 106 if (rfpProjects.size() < 1) { 107 MessageDialog.openError(parent.getShell(), 108 "Cannot configure Refal Plus project", 109 "There is no open Refal Plus projects in the workspace."); 110 } 111 else if (rfpProjects.size() == 1) 112 PreferencesUtil.createPropertyDialogOn(parent.getShell(), rfpProjects.get(0), e.text, null, null).open(); 113 else { 114 WorkbenchLabelProvider labelProvider = new WorkbenchLabelProvider(); 115 ElementListSelectionDialog dialog = new ElementListSelectionDialog(parent.getShell(), labelProvider); 116 dialog.setElements(rfpProjects.toArray()); 117 dialog.setTitle("Project Specific Configuration"); 118 dialog.setMessage("&Select the project to configure:"); 119 dialog.setMultipleSelection(false); 120 int result = dialog.open(); 121 labelProvider.dispose(); 122 if (result == Window.OK) { 123 PreferencesUtil.createPropertyDialogOn(parent.getShell(), (IProject) dialog.getFirstResult(), e.text, null, null).open(); 124 } 125 } 126 } else 127 PreferencesUtil.createPreferenceDialogOn(parent.getShell(), e.text, null, null).open(); 128 } catch (CoreException ex) { 129 RfpUI.log(ex); 130 } 131 } 132 }); 133 title.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); 134 return super.createDescriptionLabel(parent); 135 } 136 137 public void createFieldEditors () { 138 final Composite parent = getFieldEditorParent(); 139 140 Composite mainComposite = new Composite(parent, SWT.NONE); 141 GridLayout layout = new GridLayout(); 142 layout.marginHeight = 0; 143 layout.marginWidth = 0; 144 mainComposite.setLayout(layout); 145 mainComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 146 147 Group group = new Group(mainComposite, SWT.NONE); 148 group.setText("Formatter settings"); 149 layout = new GridLayout(); 150 group.setLayout(layout); 151 group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 152 153 codeStyle = new Composite(group, SWT.NONE); 154 codeStyle.setLayout(new GridLayout()); 155 codeStyle.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 156 157 booleanFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.SPACES_FOR_TABS, "Use spaces instead of tabs for indentation", codeStyle); 158 integerFieldEditor = new ModifiableIntegerFieldEditor(IPreferenceConstants.TAB_WIDTH, "Indentation size:", codeStyle); 18 protected void createFields () { 19 booleanFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.SPACES_FOR_TABS, 20 "Use spaces instead of tabs for indentation", codeStyle); 21 integerFieldEditor = new ModifiableIntegerFieldEditor(IPreferenceConstants.TAB_WIDTH, "Indentation size:", 22 codeStyle); 159 23 integerFieldEditor.setValidRange(1, 16); 160 24 addField(booleanFieldEditor); 161 25 addField(integerFieldEditor); 162 163 Dialog.applyDialogFont(parent);164 26 } 165 27 166 protected void initialize () { 167 super.initialize(); 168 if (projectSpecificListner != null) 169 projectSpecificListner.widgetSelected(null); 28 protected void enableFields () { 29 booleanFieldEditor.setEnabled(true, codeStyle); 30 integerFieldEditor.setEnabled(true, codeStyle); 170 31 } 171 32 172 public void setElement (IAdaptable element) { 173 project = (IProject) element.getAdapter(IResource.class); 174 ProjectPropertiesStore projectStore = RfpUI.getProjectPropertiesStore(project); 175 setPreferenceStore(projectStore); 33 protected void disableFields () { 34 booleanFieldEditor.setEnabled(false, codeStyle); 35 integerFieldEditor.setEnabled(false, codeStyle); 36 booleanFieldEditor.setBooleanValue(store.getBoolean(booleanFieldEditor.getPreferenceName())); 37 integerFieldEditor.setIntValue(store.getInt(integerFieldEditor.getPreferenceName())); 176 38 } 177 178 public IAdaptable getElement () {179 return project;180 }181 182 /*183 * (non-Javadoc)184 *185 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)186 */187 public void init (IWorkbench workbench) {}188 39 } -
devel-tools/trunk/eclipse/org.refal.rfpdt.ui/src/org/refal/rfpdt/ui/preferences/CompilerPreferencePage.java
r3870 r3880 1 1 package org.refal.rfpdt.ui.preferences; 2 2 3 import java.util.ArrayList;4 5 import org.eclipse.core.resources.IProject;6 import org.eclipse.core.resources.IResource;7 import org.eclipse.core.resources.ResourcesPlugin;8 import org.eclipse.core.runtime.CoreException;9 import org.eclipse.core.runtime.IAdaptable;10 import org.eclipse.jface.dialogs.Dialog;11 import org.eclipse.jface.dialogs.MessageDialog;12 import org.eclipse.jface.preference.FieldEditorPreferencePage;13 import org.eclipse.jface.preference.IPreferenceStore;14 import org.eclipse.jface.window.Window;15 import org.eclipse.swt.SWT;16 import org.eclipse.swt.events.SelectionAdapter;17 import org.eclipse.swt.events.SelectionEvent;18 import org.eclipse.swt.events.SelectionListener;19 import org.eclipse.swt.layout.GridData;20 import org.eclipse.swt.layout.GridLayout;21 import org.eclipse.swt.widgets.Composite;22 import org.eclipse.swt.widgets.Group;23 import org.eclipse.swt.widgets.Label;24 import org.eclipse.swt.widgets.Link;25 import org.eclipse.ui.IWorkbench;26 import org.eclipse.ui.IWorkbenchPreferencePage;27 import org.eclipse.ui.IWorkbenchPropertyPage;28 import org.eclipse.ui.dialogs.ElementListSelectionDialog;29 import org.eclipse.ui.dialogs.PreferencesUtil;30 import org.eclipse.ui.model.WorkbenchLabelProvider;31 import org.refal.rfpdt.core.RfpCore;32 import org.refal.rfpdt.ui.RfpUI;33 3 import org.refal.rfpdt.ui.preferences.SyntaxColoringPreferencePage.ModifiableBooleanFieldEditor; 34 4 35 public class CompilerPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage, IWorkbenchPropertyPage { 36 private IPreferenceStore store; 37 private IProject project; 38 private SelectionListener projectSpecificListner; 39 40 private Composite codeStyle; 5 public class CompilerPreferencePage extends PropertiesAndPreferencePage { 41 6 private ModifiableBooleanFieldEditor varNamesFieldEditor; 42 7 private ModifiableBooleanFieldEditor lineNumbersFieldEditor; 43 8 private ModifiableBooleanFieldEditor sourceFieldEditor; 44 9 45 public CompilerPreferencePage () { 46 super(GRID); 47 store = RfpUI.getPluginPreferenceStore(); 48 setPreferenceStore(store); 10 protected String propertiesUrl () { 11 return "org.refal.rfpdt.editor.property.compilerPreferencePage"; 49 12 } 50 13 51 protected void performDefaults () { 52 super.performDefaults(); 53 if (projectSpecificListner != null) { 54 varNamesFieldEditor.setEnabled(false, codeStyle); 55 lineNumbersFieldEditor.setEnabled(false, codeStyle); 56 sourceFieldEditor.setEnabled(false, codeStyle); 57 varNamesFieldEditor.setBooleanValue(store.getBoolean(varNamesFieldEditor.getPreferenceName())); 58 lineNumbersFieldEditor.setBooleanValue(store.getBoolean(lineNumbersFieldEditor.getPreferenceName())); 59 sourceFieldEditor.setBooleanValue(store.getBoolean(sourceFieldEditor.getPreferenceName())); 60 } 14 protected String preferenceUrl () { 15 return "org.refal.rfpdt.editor.preferences.compilerPreferencePage"; 61 16 } 62 17 63 protected Label createDescriptionLabel (final Composite parent) { 64 Link title; 65 if (project == null) { 66 title = new Link(parent, SWT.NONE); 67 title.setText("<a href=\"org.refal.rfpdt.editor.property.compilerPreferencePage\">Configure Project Specific Settings...</a>"); 68 } else { 69 Composite labelComposite = new Composite(parent, SWT.NONE); 70 GridLayout layout = new GridLayout(2, false); 71 layout.marginHeight = 0; 72 layout.marginWidth = 0; 73 labelComposite.setLayout(layout); 74 labelComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 75 76 Composite c1 = new Composite(labelComposite, SWT.NONE); 77 c1.setLayout(new GridLayout()); 78 c1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 79 80 final ModifiableBooleanFieldEditor modifiableBooleanFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.USE_PROJECT_SPECIFIC, "Enable project specific settings", c1); 81 addField(modifiableBooleanFieldEditor); 82 modifiableBooleanFieldEditor.addSelectionListener(projectSpecificListner = new SelectionListener() { 83 public void widgetSelected (SelectionEvent e) { 84 if (modifiableBooleanFieldEditor.getBooleanValue()) { 85 varNamesFieldEditor.setEnabled(true, codeStyle); 86 lineNumbersFieldEditor.setEnabled(true, codeStyle); 87 sourceFieldEditor.setEnabled(true, codeStyle); 88 } else 89 performDefaults(); 90 } 91 public void widgetDefaultSelected (SelectionEvent e) { 92 widgetSelected(e); 93 } 94 }); 95 96 title = new Link(labelComposite, SWT.NONE); 97 title.setText("<a href=\"org.refal.rfpdt.editor.preferences.compilerPreferencePage\">Configure Workspace Settings...</a>"); 98 } 99 title.addSelectionListener(new SelectionAdapter() { 100 public void widgetSelected (SelectionEvent e) { 101 try { 102 if (project == null) { 103 IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); 104 ArrayList<IProject> rfpProjects = new ArrayList<IProject>(projects.length); 105 for (IProject project : projects) { 106 if (project.isOpen() && project.getNature(RfpCore.NATURE_ID) != null) 107 rfpProjects.add(project); 108 } 109 if (rfpProjects.size() < 1) { 110 MessageDialog.openError(parent.getShell(), 111 "Cannot configure Refal Plus project", 112 "There is no open Refal Plus projects in the workspace."); 113 } 114 else if (rfpProjects.size() == 1) 115 PreferencesUtil.createPropertyDialogOn(parent.getShell(), rfpProjects.get(0), e.text, null, null).open(); 116 else { 117 WorkbenchLabelProvider labelProvider = new WorkbenchLabelProvider(); 118 ElementListSelectionDialog dialog = new ElementListSelectionDialog(parent.getShell(), labelProvider); 119 dialog.setElements(rfpProjects.toArray()); 120 dialog.setTitle("Project Specific Configuration"); 121 dialog.setMessage("&Select the project to configure:"); 122 dialog.setMultipleSelection(false); 123 int result = dialog.open(); 124 labelProvider.dispose(); 125 if (result == Window.OK) { 126 PreferencesUtil.createPropertyDialogOn(parent.getShell(), (IProject) dialog.getFirstResult(), e.text, null, null).open(); 127 } 128 } 129 } else 130 PreferencesUtil.createPreferenceDialogOn(parent.getShell(), e.text, null, null).open(); 131 } catch (CoreException ex) { 132 RfpUI.log(ex); 133 } 134 } 135 }); 136 title.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); 137 return super.createDescriptionLabel(parent); 138 } 139 140 public void createFieldEditors () { 141 final Composite parent = getFieldEditorParent(); 142 143 Composite mainComposite = new Composite(parent, SWT.NONE); 144 GridLayout layout = new GridLayout(); 145 layout.marginHeight = 0; 146 layout.marginWidth = 0; 147 mainComposite.setLayout(layout); 148 mainComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 149 150 Group group = new Group(mainComposite, SWT.NONE); 151 group.setText("Formatter settings"); 152 layout = new GridLayout(); 153 group.setLayout(layout); 154 group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 155 156 codeStyle = new Composite(group, SWT.NONE); 157 codeStyle.setLayout(new GridLayout()); 158 codeStyle.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 159 160 varNamesFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.COMPILER_ADD_VARIABLE_NAMES, "Add variable attributes to generated class files (used by the debugger)", codeStyle); 161 lineNumbersFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.COMPILER_ADD_LINE_NUMBERS, "Add line number to generated class files (used by the debugger)", codeStyle); 162 sourceFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.COMPILER_ADD_SOURCE, "Add source file name to generated class files (used by the debugger)", codeStyle); 18 protected void createFields () { 19 varNamesFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.COMPILER_ADD_VARIABLE_NAMES, 20 "Add variable attributes to generated class files (used by the debugger)", codeStyle); 21 lineNumbersFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.COMPILER_ADD_LINE_NUMBERS, 22 "Add line number to generated class files (used by the debugger)", codeStyle); 23 sourceFieldEditor = new ModifiableBooleanFieldEditor(IPreferenceConstants.COMPILER_ADD_SOURCE, 24 "Add source file name to generated class files (used by the debugger)", codeStyle); 163 25 addField(varNamesFieldEditor); 164 26 addField(lineNumbersFieldEditor); 165 27 addField(sourceFieldEditor); 166 167 Dialog.applyDialogFont(parent);168 28 } 169 29 170 protected void initialize() {171 super.initialize();172 if (projectSpecificListner != null)173 projectSpecificListner.widgetSelected(null);30 protected void enableFields () { 31 varNamesFieldEditor.setEnabled(true, codeStyle); 32 lineNumbersFieldEditor.setEnabled(true, codeStyle); 33 sourceFieldEditor.setEnabled(true, codeStyle); 174 34 } 175 35 176 public void setElement (IAdaptable element) { 177 project = (IProject) element.getAdapter(IResource.class); 178 ProjectPropertiesStore projectStore = RfpUI.getProjectPropertiesStore(project); 179 setPreferenceStore(projectStore); 36 protected void disableFields () { 37 varNamesFieldEditor.setEnabled(false, codeStyle); 38 lineNumbersFieldEditor.setEnabled(false, codeStyle); 39 sourceFieldEditor.setEnabled(false, codeStyle); 40 varNamesFieldEditor.setBooleanValue(store.getBoolean(varNamesFieldEditor.getPreferenceName())); 41 lineNumbersFieldEditor.setBooleanValue(store.getBoolean(lineNumbersFieldEditor.getPreferenceName())); 42 sourceFieldEditor.setBooleanValue(store.getBoolean(sourceFieldEditor.getPreferenceName())); 180 43 } 181 182 public IAdaptable getElement () {183 return project;184 }185 186 /*187 * (non-Javadoc)188 *189 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)190 */191 public void init (IWorkbench workbench) {}192 44 } -
devel-tools/trunk/eclipse/org.refal.rfpdt.ui/src/org/refal/rfpdt/ui/preferences/SyntaxColoringPreferencePage.java
r3873 r3880 28 28 29 29 public class SyntaxColoringPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { 30 31 30 public static class ModifiableIntegerFieldEditor extends IntegerFieldEditor { 32 public ModifiableIntegerFieldEditor (String name, String labelText, Composite parent) { 33 super(name, labelText, parent); 34 } 35 36 public ModifiableIntegerFieldEditor (String name, String labelText, Composite parent, int textLimit) { 37 super(name, labelText, parent, textLimit); 31 public ModifiableIntegerFieldEditor (String name, String label, Composite parent) { 32 super(name, label, parent); 38 33 } 39 34 40 35 void setIntValue (int value) { 41 setStringValue( "" + value);36 setStringValue(String.valueOf(value)); 42 37 setPresentsDefaultValue(false); 43 38 } … … 49 44 public ModifiableBooleanFieldEditor (String name, String label, Composite parent) { 50 45 super(name, label, parent); 51 this.parent = parent;52 }53 54 public ModifiableBooleanFieldEditor (String name, String labelText, int style, Composite parent) {55 super(name, labelText, style, parent);56 46 this.parent = parent; 57 47 } … … 227 217 } 228 218 229 /*230 * (non-Javadoc)231 *232 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)233 */234 219 public void init (IWorkbench workbench) {} 235 220 }
Note: See TracChangeset
for help on using the changeset viewer.