+++ /dev/null
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package net.sourceforge.phpdt.internal.ui.preferences;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import net.sourceforge.phpdt.core.Flags;
-import net.sourceforge.phpdt.internal.ui.util.SWTUtil;
-import net.sourceforge.phpdt.internal.ui.viewsupport.ImageDescriptorRegistry;
-import net.sourceforge.phpdt.internal.ui.viewsupport.JavaElementImageProvider;
-import net.sourceforge.phpdt.internal.ui.wizards.dialogfields.ListDialogField;
-import net.sourceforge.phpdt.ui.JavaElementImageDescriptor;
-import net.sourceforge.phpdt.ui.PreferenceConstants;
-import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class MembersOrderPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
- private static final String ALL_ENTRIES= "T,SI,SF,SM,I,F,C,M"; //$NON-NLS-1$
- private static final String PREF_OUTLINE_SORT_OPTION= PreferenceConstants.APPEARANCE_MEMBER_SORT_ORDER;
-
- public static final String CONSTRUCTORS= "C"; //$NON-NLS-1$
- public static final String FIELDS= "F"; //$NON-NLS-1$
- public static final String METHODS= "M"; //$NON-NLS-1$
- public static final String STATIC_METHODS= "SM"; //$NON-NLS-1$
- public static final String STATIC_FIELDS= "SF"; //$NON-NLS-1$
- public static final String INIT= "I"; //$NON-NLS-1$
- public static final String STATIC_INIT= "SI"; //$NON-NLS-1$
- public static final String TYPES= "T"; //$NON-NLS-1$
-
- private ListDialogField fSortOrderList;
-
- private static List getSortOrderList(String string) {
- StringTokenizer tokenizer= new StringTokenizer(string, ","); //$NON-NLS-1$
- List entries= new ArrayList();
- for (int i= 0; tokenizer.hasMoreTokens(); i++) {
- String token= tokenizer.nextToken();
- entries.add(token);
- }
- return entries;
- }
-
- private static boolean isValidEntries(List entries) {
- StringTokenizer tokenizer= new StringTokenizer(ALL_ENTRIES, ","); //$NON-NLS-1$
- int i= 0;
- for (; tokenizer.hasMoreTokens(); i++) {
- String token= tokenizer.nextToken();
- if (!entries.contains(token))
- return false;
- }
- return i == entries.size();
- }
-
- public MembersOrderPreferencePage() {
- //set the preference store
- setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore());
-
- setDescription(PreferencesMessages.getString("MembersOrderPreferencePage.label.description")); //$NON-NLS-1$
-
- String string= getPreferenceStore().getString(PREF_OUTLINE_SORT_OPTION);
-
- String upLabel= PreferencesMessages.getString("MembersOrderPreferencePage.button.up"); //$NON-NLS-1$
- String downLabel= PreferencesMessages.getString("MembersOrderPreferencePage.button.down"); //$NON-NLS-1$
- String[] buttonlabels= new String[] { upLabel, downLabel };
-
- fSortOrderList= new ListDialogField(null, buttonlabels, new MemberSortLabelProvider());
- fSortOrderList.setDownButtonIndex(1);
- fSortOrderList.setUpButtonIndex(0);
-
- //validate entries stored in store, false get defaults
- List entries= getSortOrderList(string);
- if (!isValidEntries(entries)) {
- string= PHPeclipsePlugin.getDefault().getPreferenceStore().getDefaultString(PREF_OUTLINE_SORT_OPTION);
- entries= getSortOrderList(string);
- }
-
- fSortOrderList.setElements(entries);
- }
-
- /*
- * @see PreferencePage#createControl(Composite)
- */
- public void createControl(Composite parent) {
- super.createControl(parent);
-// WorkbenchHelp.setHelp(getControl(), IJavaHelpContextIds.SORT_ORDER_PREFERENCE_PAGE);
- }
-
- /*
- * @see org.eclipse.jface.preference.PreferencePage#createContents(Composite)
- */
- protected Control createContents(Composite parent) {
-
-
- Composite composite= new Composite(parent, SWT.NONE);
-
- GridLayout layout= new GridLayout();
- layout.numColumns= 3;
- layout.marginWidth= 0;
- layout.marginHeight= 0;
- composite.setLayout(layout);
-
- GridData data= new GridData();
- data.verticalAlignment= GridData.FILL;
- data.horizontalAlignment= GridData.FILL_HORIZONTAL;
- composite.setLayoutData(data);
-
- createSortOrderListDialogField(composite, 3);
- Dialog.applyDialogFont(composite);
- return composite;
- }
-
- private void createSortOrderListDialogField(Composite composite, int span) {
- fSortOrderList.doFillIntoGrid(composite, span);
-
- fSortOrderList.getLabelControl(null).dispose();
-
- GridData data= (GridData) fSortOrderList.getListControl(null).getLayoutData();
- data.grabExcessHorizontalSpace= true;
- data.verticalAlignment= 0;
- data.heightHint= SWTUtil.getTableHeightHint(fSortOrderList.getTableViewer().getTable(), 8);
- }
-
- /*
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(IWorkbench)
- */
- public void init(IWorkbench workbench) {
- }
-
- /*
- * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
- */
- protected void performDefaults() {
- String string= getPreferenceStore().getDefaultString(PREF_OUTLINE_SORT_OPTION);
- fSortOrderList.setElements(getSortOrderList(string));
- }
-
- /*
- * @see org.eclipse.jface.preference.IPreferencePage#performOk()
- */
- //reorders elements in the Outline based on selection
- public boolean performOk() {
- //update outline view
-
- //save preferences
- IPreferenceStore store= getPreferenceStore();
-
- StringBuffer buf= new StringBuffer();
- List curr= fSortOrderList.getElements();
- for (Iterator iter= curr.iterator(); iter.hasNext();) {
- String s= (String) iter.next();
- buf.append(s);
- buf.append(',');
- }
- store.setValue(PREF_OUTLINE_SORT_OPTION, buf.toString());
- PHPeclipsePlugin.getDefault().savePluginPreferences();
- return true;
- }
-
- private class MemberSortLabelProvider extends LabelProvider {
-
- public MemberSortLabelProvider() {
- }
-
- /*
- * @see org.eclipse.jface.viewers.ILabelProvider#getText(Object)
- */
- public String getText(Object element) {
-
- if (element instanceof String) {
- String s= (String) element;
- if (s.equals(FIELDS)) {
- return PreferencesMessages.getString("MembersOrderPreferencePage.fields.label"); //$NON-NLS-1$
- } else if (s.equals(CONSTRUCTORS)) {
- return PreferencesMessages.getString("MembersOrderPreferencePage.constructors.label"); //$NON-NLS-1$
- } else if (s.equals(METHODS)) {
- return PreferencesMessages.getString("MembersOrderPreferencePage.methods.label"); //$NON-NLS-1$
- } else if (s.equals(STATIC_FIELDS)) {
- return PreferencesMessages.getString("MembersOrderPreferencePage.staticfields.label"); //$NON-NLS-1$
- } else if (s.equals(STATIC_METHODS)) {
- return PreferencesMessages.getString("MembersOrderPreferencePage.staticmethods.label"); //$NON-NLS-1$
- } else if (s.equals(INIT)) {
- return PreferencesMessages.getString("MembersOrderPreferencePage.initialisers.label"); //$NON-NLS-1$
- } else if (s.equals(STATIC_INIT)) {
- return PreferencesMessages.getString("MembersOrderPreferencePage.staticinitialisers.label"); //$NON-NLS-1$
- } else if (s.equals(TYPES)) {
- return PreferencesMessages.getString("MembersOrderPreferencePage.types.label"); //$NON-NLS-1$
- }
- }
- return ""; //$NON-NLS-1$
- }
-
- /*
- * @see org.eclipse.jface.viewers.ILabelProvider#getImage(Object)
- */
- public Image getImage(Object element) {
- //access to image registry
- ImageDescriptorRegistry registry= PHPeclipsePlugin.getImageDescriptorRegistry();
- ImageDescriptor descriptor= null;
-
- if (element instanceof String) {
- int visibility= Flags.AccPublic;
- String s= (String) element;
- if (s.equals(FIELDS)) {
- //0 will give the default field image
- descriptor= JavaElementImageProvider.getFieldImageDescriptor(false, visibility);
- } else if (s.equals(CONSTRUCTORS)) {
- descriptor= JavaElementImageProvider.getMethodImageDescriptor(false, visibility);
- //add a constructor adornment to the image descriptor
- descriptor= new JavaElementImageDescriptor(descriptor, JavaElementImageDescriptor.CONSTRUCTOR, JavaElementImageProvider.SMALL_SIZE);
- } else if (s.equals(METHODS)) {
- descriptor= JavaElementImageProvider.getMethodImageDescriptor(false, visibility);
- } else if (s.equals(STATIC_FIELDS)) {
- descriptor= JavaElementImageProvider.getFieldImageDescriptor(false, visibility);
- //add a constructor adornment to the image descriptor
- descriptor= new JavaElementImageDescriptor(descriptor, JavaElementImageDescriptor.STATIC, JavaElementImageProvider.SMALL_SIZE);
- } else if (s.equals(STATIC_METHODS)) {
- descriptor= JavaElementImageProvider.getMethodImageDescriptor(false, visibility);
- //add a constructor adornment to the image descriptor
- descriptor= new JavaElementImageDescriptor(descriptor, JavaElementImageDescriptor.STATIC, JavaElementImageProvider.SMALL_SIZE);
- } else if (s.equals(INIT)) {
- descriptor= JavaElementImageProvider.getMethodImageDescriptor(false, visibility);
- } else if (s.equals(STATIC_INIT)) {
- descriptor= JavaElementImageProvider.getMethodImageDescriptor(false, visibility);
- descriptor= new JavaElementImageDescriptor(descriptor, JavaElementImageDescriptor.STATIC, JavaElementImageProvider.SMALL_SIZE);
- } else if (s.equals(TYPES)) {
- descriptor= JavaElementImageProvider.getTypeImageDescriptor(false, true, Flags.AccPublic);
- } else {
- descriptor= JavaElementImageProvider.getMethodImageDescriptor(false, Flags.AccPublic);
- }
- return registry.get(descriptor);
- }
- return null;
- }
-
- }
-
-}