Changeset 127

Show
Ignore:
Timestamp:
08/10/08 01:30:10 (5 months ago)
Author:
mb0
Message:

NEW - # 100: add project properties page
http://axdt.org/ticket/100

easy as cake

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • axdt/trunk/org.axdt.as3/plugin.xml

    r88 r127  
    233233   </extension> 
    234234   <extension 
     235         point="org.eclipse.ui.propertyPages"> 
     236      <page 
     237            class="org.axdt.as3.preferences.AS3ProjectProperties" 
     238            id="org.axdt.as3.preferences.AS3ProjectProperties" 
     239            name="AXDT ActionScript3"> 
     240         <enabledWhen> 
     241                <adapt type="org.eclipse.core.resources.IProject"/> 
     242         </enabledWhen> 
     243         <filter 
     244               name="nature" 
     245               value="org.axdt.as3.imp.nature"> 
     246         </filter> 
     247      </page> 
     248   </extension> 
     249   <extension 
    235250         point="org.eclipse.ui.preferencePages"> 
    236251      <page 
  • axdt/trunk/org.axdt.common/src/org/axdt/preferences/AbstractPreferencePage.java

    r124 r127  
    11package org.axdt.preferences; 
    22 
     3import org.eclipse.core.runtime.IAdaptable; 
    34import org.eclipse.jface.preference.FieldEditor; 
    45import org.eclipse.jface.preference.FieldEditorPreferencePage; 
     6import org.eclipse.jface.preference.IPreferenceStore; 
    57import org.eclipse.swt.SWT; 
    68import org.eclipse.swt.layout.GridData; 
     
    1012import org.eclipse.ui.IWorkbench; 
    1113import org.eclipse.ui.IWorkbenchPreferencePage; 
     14import org.eclipse.ui.IWorkbenchPropertyPage; 
    1215 
     16/** 
     17 * @author mb0 
     18 * 
     19 */ 
    1320public abstract class AbstractPreferencePage extends FieldEditorPreferencePage implements 
    14                 IWorkbenchPreferencePage
     21                IWorkbenchPreferencePage, IWorkbenchPropertyPage
    1522 
    1623        private final PrefPage page; 
    1724        private Composite content; 
     25         
     26        /** 
     27         * only when used as property page 
     28         */ 
     29        private IAdaptable element; 
    1830 
    1931        public AbstractPreferencePage(PrefPage page) { 
    2032                super(GRID); 
    2133                this.page = page; 
    22                 setPreferenceStore(page.getPreferences().getStore()); 
    2334                setDescription(page.getDescription()); 
    2435        } 
     
    3243        } 
    3344 
     45        protected IPreferenceStore retrievePreferenceStore(AbstractPreferences prefs) { 
     46                return prefs.getStore(); 
     47        } 
     48 
    3449        @Override 
    3550        protected void createFieldEditors() { 
     51                setPreferenceStore(retrievePreferenceStore(page.getPreferences())); 
    3652                content = new Composite(getFieldEditorParent(), SWT.NONE); 
    3753                content.setLayout(new GridLayout(1, true)); 
     
    7490        public void init(IWorkbench workbench) { 
    7591        } 
     92 
     93        /** 
     94         * only when used as property page 
     95         * @see org.eclipse.ui.IWorkbenchPropertyPage#getElement() 
     96         */ 
     97        public IAdaptable getElement() { 
     98                return element; 
     99        } 
     100 
     101        /** 
     102         * only when used as property page 
     103         * @see org.eclipse.ui.IWorkbenchPropertyPage#setElement(org.eclipse.core.runtime.IAdaptable) 
     104         */ 
     105        public void setElement(IAdaptable element) { 
     106                this.element = element; 
     107        } 
    76108} 
  • axdt/trunk/org.axdt.common/src/org/axdt/preferences/AbstractPreferences.java

    r124 r127  
    1414import org.eclipse.core.runtime.preferences.InstanceScope; 
    1515import org.eclipse.jface.preference.IPreferenceStore; 
    16 import org.eclipse.ui.preferences.ScopedPreferenceStore; 
    1716import org.eclipse.ui.texteditor.ChainedPreferenceStore; 
    1817 
     
    129128 
    130129        public IPreferenceStore getStore() { 
    131                 if (store == null) store = new ScopedPreferenceStore(new InstanceScope(), getQualifier()); 
     130                if (store == null) { 
     131                        IScopeContext[] search = new IScopeContext[] { 
     132                                        new InstanceScope(),  
     133                                        new ConfigurationScope() 
     134                        }; 
     135                        store = new ScopedPreferenceStore(search[0], search, getQualifier()); 
     136                } 
    132137                return store; 
    133138        } 
     
    144149                        return new ChainedPreferenceStore(new IPreferenceStore[] {getStore()}); 
    145150                } 
    146                 ProjectScope projectScope = new ProjectScope(res.getProject()); 
    147                 ScopedPreferenceStore store = new ScopedPreferenceStore(projectScope, getQualifier()); 
    148                 store 
    149                                 .setSearchContexts(new IScopeContext[] {new InstanceScope(), 
    150                                                 new ConfigurationScope()}); 
     151                IScopeContext[] search = new IScopeContext[] {  
     152                                new ProjectScope(res.getProject()), 
     153                                new InstanceScope(), 
     154                                new ConfigurationScope()  
     155                }; 
     156                ScopedPreferenceStore store = new ScopedPreferenceStore(search[0], search, getQualifier()); 
    151157                return store; 
    152158        }