Example usage for org.eclipse.jdt.core.search SearchEngine createWorkspaceScope

List of usage examples for org.eclipse.jdt.core.search SearchEngine createWorkspaceScope

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.search SearchEngine createWorkspaceScope.

Prototype

public static IJavaSearchScope createWorkspaceScope() 

Source Link

Document

Returns a Java search scope with the workspace as the only limit.

Usage

From source file:com.android.ide.eclipse.auidt.internal.wizards.templates.NewTemplatePage.java

License:Open Source License

private String chooseActivity() {
    try {// w  ww  .j  a va2 s .  co m
        // Compute a search scope: We need to merge all the subclasses
        // android.app.Fragment and android.support.v4.app.Fragment
        IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
        IProject project = mValues.project;
        IJavaProject javaProject = BaseProjectHelper.getJavaProject(project);
        IType activityType = null;

        if (javaProject != null) {
            activityType = javaProject.findType(CLASS_ACTIVITY);
        }
        if (activityType == null) {
            IJavaProject[] projects = BaseProjectHelper.getAndroidProjects(null);
            for (IJavaProject p : projects) {
                activityType = p.findType(CLASS_ACTIVITY);
                if (activityType != null) {
                    break;
                }
            }
        }
        if (activityType != null) {
            NullProgressMonitor monitor = new NullProgressMonitor();
            ITypeHierarchy hierarchy = activityType.newTypeHierarchy(monitor);
            IType[] classes = hierarchy.getAllSubtypes(activityType);
            scope = SearchEngine.createJavaSearchScope(classes, IJavaSearchScope.SOURCES);
        }

        Shell parent = AdtPlugin.getDisplay().getActiveShell();
        final SelectionDialog dialog = JavaUI.createTypeDialog(parent, new ProgressMonitorDialog(parent), scope,
                IJavaElementSearchConstants.CONSIDER_CLASSES, false,
                // Use ? as a default filter to fill dialog with matches
                "?", //$NON-NLS-1$
                new TypeSelectionExtension() {
                    @Override
                    public ITypeInfoFilterExtension getFilterExtension() {
                        return new ITypeInfoFilterExtension() {
                            @Override
                            public boolean select(ITypeInfoRequestor typeInfoRequestor) {
                                int modifiers = typeInfoRequestor.getModifiers();
                                if (!Flags.isPublic(modifiers) || Flags.isInterface(modifiers)
                                        || Flags.isEnum(modifiers)) {
                                    return false;
                                }
                                return true;
                            }
                        };
                    }
                });

        dialog.setTitle("Choose Activity Class");
        dialog.setMessage("Select an Activity class (? = any character, * = any string):");
        if (dialog.open() == IDialogConstants.CANCEL_ID) {
            return null;
        }

        Object[] types = dialog.getResult();
        if (types != null && types.length > 0) {
            return ((IType) types[0]).getFullyQualifiedName();
        }
    } catch (JavaModelException e) {
        AdtPlugin.log(e, null);
    } catch (CoreException e) {
        AdtPlugin.log(e, null);
    }
    return null;
}

From source file:com.android.ide.eclipse.pdt.internal.SourceRevealer.java

License:Apache License

@Override
public boolean revealMethod(String fqmn, String fileName, int lineNumber, String perspective) {
    SearchEngine se = new SearchEngine();
    SearchPattern searchPattern = SearchPattern.createPattern(fqmn, IJavaSearchConstants.METHOD,
            IJavaSearchConstants.DECLARATIONS, SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE);
    MethodSearchRequestor requestor = new MethodSearchRequestor(perspective);
    try {// w ww  . java2s .  co m
        se.search(searchPattern, new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() },
                SearchEngine.createWorkspaceScope(), requestor, new NullProgressMonitor());
    } catch (CoreException e) {
        return false;
    }

    return requestor.didMatch();
}

From source file:com.android.ide.eclipse.traceview.editors.TraceviewEditor.java

License:Apache License

public void handleMethod(MethodData method) {
    // it's a bit complicated to convert the signature we have with what the
    // search engine require, so we'll search by name only and test the signature
    // when we get the result(s).
    String methodName = method.getMethodName();
    String className = method.getClassName().replaceAll("/", "."); //$NON-NLS-1$  //$NON-NLS-21$
    String fqmn = className + "." + methodName; //$NON-NLS-1$

    try {// w  w w  . j a  va2s.  co  m
        SearchEngine se = new SearchEngine();
        se.search(
                SearchPattern.createPattern(fqmn, IJavaSearchConstants.METHOD,
                        IJavaSearchConstants.DECLARATIONS,
                        SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE),
                new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() },
                SearchEngine.createWorkspaceScope(), new TraceSearchRequestor(method),
                new NullProgressMonitor());
    } catch (CoreException e) {

    }
}

From source file:com.contrastsecurity.ide.eclipse.ui.internal.model.EventsTab.java

License:Open Source License

private static Set<IType> findTypeInWorkspace(String typeName) throws CoreException {
    int dot = typeName.lastIndexOf('.');
    char[][] qualifications;
    String simpleName;/*from  w  w w .  j  a v  a 2 s. c om*/
    if (dot != -1) {
        qualifications = new char[][] { typeName.substring(0, dot).toCharArray() };
        simpleName = typeName.substring(dot + 1);
    } else {
        qualifications = null;
        simpleName = typeName;
    }
    char[][] typeNames = new char[][] { simpleName.toCharArray() };

    ContrastTypeNameMatchRequestor contrastTypeNameMatchRequestor = new ContrastTypeNameMatchRequestor();

    new SearchEngine().searchAllTypeNames(qualifications, typeNames, SearchEngine.createWorkspaceScope(),
            contrastTypeNameMatchRequestor, IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null);

    return contrastTypeNameMatchRequestor.getTypeNameMatches();
}

From source file:com.drgarbage.bytecodevisualizer.compare.OpenClassFileAction.java

License:Apache License

/**
 * Opens a dialog with a list of classes from the current workspace.
 * The selected class is returned as a java element.
 * @return the java element or <code>null</null>
 * @see IJavaElement/*from  w ww . j  a va 2s.  c  om*/
 */
private IJavaElement selectJavaElement() {

    Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();

    FilteredItemsSelectionDialog dialog = new OpenTypeSelectionDialog(shell, false,
            new ProgressMonitorDialog(shell), SearchEngine.createWorkspaceScope(), IJavaSearchConstants.TYPE);
    dialog.setTitle(ClassFileMergeViewer.CLASS_FILE_MERGEVIEWER_TITLE);
    dialog.setMessage(BytecodeVisualizerMessages.Message_file_to_compare);

    int resultCode = dialog.open();
    if (resultCode != IDialogConstants.OK_ID) {
        return null;
    }

    Object[] result = dialog.getResult();

    if (result != null) {
        if (result.length != 0) {
            IJavaElement je = (IJavaElement) result[0];
            return je;
        }
    }

    return null;
}

From source file:com.github.ajaxsys.jdtx.utils.JDTUtils.java

License:Open Source License

/**
 * Find the IMethod in the workspace corresponding to a method signature.
 *
 * This doesn't work for elements declared in inner classes. It's possible
 * this is a 3.2 bug fixed in 3.3//from   w w  w  .  jav  a  2s.  c  om
 *
 * @return null if not found
 */
@Deprecated
public static IMethod findJavaMethodInWorkspaceBrokenForInnerClasses(String methodSig) {
    // dammit ... this doesn't work for inner classes.

    System.err.println("Search for " + methodSig);
    SearchPattern p = SearchPattern.createPattern(methodSig, IJavaSearchConstants.METHOD,
            IJavaSearchConstants.DECLARATIONS, SearchPattern.R_EXACT_MATCH);
    IJavaSearchScope scope = SearchEngine.createWorkspaceScope();
    SearchEngine engine = new SearchEngine();
    final Collection<IJavaElement> kludge = new ArrayList<IJavaElement>();
    SearchRequestor requestor = new SearchRequestor() {

        @Override
        public void acceptSearchMatch(SearchMatch match) throws CoreException {
            kludge.add((IJavaElement) match.getElement());
        }

    };
    try {
        engine.search(p, new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, scope,
                requestor, null);
    } catch (CoreException e) {
        e.printStackTrace();
    }
    if (kludge.size() == 1) {
        return (IMethod) kludge.iterator().next();
    } else {
        System.err.println("RETURNED " + kludge.size() + " " + kludge);
        return null;
    }
}

From source file:com.google.gwt.eclipse.core.search.JavaQueryParticipantTest.java

License:Open Source License

public void testScope() throws CoreException {
    IJavaElement element = getType2().getMethod("getNumber", NO_PARAMS);
    QuerySpecification query;/*from w ww.  j  av a 2 s  .c o  m*/
    IJavaSearchScope scope;

    // Scope: workspace
    scope = SearchEngine.createWorkspaceScope();
    query = new ElementQuerySpecification(element, IJavaSearchConstants.REFERENCES, scope, "");
    assertSearchMatch(createWindowsTestMatch(1039, 9), query);

    // Scope: project
    scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { getTestProject() });
    query = new ElementQuerySpecification(element, IJavaSearchConstants.REFERENCES, scope, "");
    assertSearchMatch(createWindowsTestMatch(1039, 9), query);

    // Scope: Compilation unit (the one containing the reference)
    scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { class1.getCompilationUnit() });
    query = new ElementQuerySpecification(element, IJavaSearchConstants.REFERENCES, scope, "");
    assertSearchMatch(createWindowsTestMatch(1039, 9), query);

    // Scope: Compilation unit (the one without any reference)
    scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { class2.getCompilationUnit() });
    query = new ElementQuerySpecification(element, IJavaSearchConstants.REFERENCES, scope, "");
    assertSearchMatches(NO_MATCHES, query);
}

From source file:com.hudson.hibernatesynchronizer.properties.HibernateProperties.java

License:Apache License

private void addGeneral(Composite parent) {

    Composite subComp = new Composite(parent, SWT.NULL);
    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 2;//  w  w  w  . j a  va2  s.com
    subComp.setLayoutData(gd);
    generationEnabled = new BooleanFieldEditor(Constants.PROP_GENERATION_ENABLED,
            "I would like to have the synchronization performed automatically.", subComp);
    generationEnabled.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            checkScreen();
        }
    });
    generationEnabled.setPreferenceStore(getLocalPreferenceStore());
    generationEnabled.load();

    Label label = new Label(subComp, SWT.NULL);
    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    IJavaProject javaProject = (JavaProject) JavaCore.create((IProject) getElement());
    List sourceRoots = new ArrayList();
    try {
        String value = Plugin.getProperty(getElement(), Constants.PROP_SOURCE_LOCATION);
        IPackageFragmentRoot[] roots = javaProject.getAllPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            try {
                if (null != roots[i].getCorrespondingResource() && roots[i].getJavaProject().equals(javaProject)
                        && !roots[i].isArchive()) {
                    sourceRoots.add(roots[i].getPath().toOSString());
                }
            } catch (JavaModelException jme) {
            }
        }
        if (sourceRoots.size() > 1) {
            Label pathLabel = new Label(parent, SWT.NONE);
            pathLabel.setText("Source Location");
            sourceLocation = new Combo(parent, SWT.READ_ONLY);
            int selection = 0;
            for (int i = 0; i < sourceRoots.size(); i++) {
                sourceLocation.add(sourceRoots.get(i).toString());
                if (null != value && value.equals(sourceRoots.get(i).toString())) {
                    selection = i;
                }
            }
            sourceLocation.select(selection);
        }
    } catch (Exception e) {
    }

    TabFolder folder = new TabFolder(parent, SWT.NONE);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 2;
    gd.grabExcessHorizontalSpace = true;
    folder.setLayoutData(gd);
    TabItem item = new TabItem(folder, SWT.NONE);
    item.setText("Value Objects");
    Composite composite = new Composite(folder, SWT.NULL);
    GridLayout gl = new GridLayout(1, false);
    composite.setLayout(gl);
    gd = new GridData();
    gd.grabExcessHorizontalSpace = true;
    composite.setLayoutData(gd);
    item.setControl(composite);

    Composite tComp = new Composite(composite, SWT.NONE);
    boEnabled = new BooleanFieldEditor(Constants.PROP_GENERATION_VALUE_OBJECT_ENABLED,
            "I would like to have value objects created for me.", tComp);
    boEnabled.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            checkScreen();
        }
    });
    boEnabled.setPreferenceStore(getLocalPreferenceStore());
    boEnabled.load();

    // Path text field
    baseGroup = new Group(composite, SWT.NULL);
    baseGroup.setText("Base Package Location");
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 1;
    baseGroup.setLayout(gridLayout);
    baseGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));

    String[][] params = new String[3][2];
    params[0][0] = Constants.PROP_VALUE_RELATIVE;
    params[0][1] = Constants.PROP_VALUE_RELATIVE;
    params[1][0] = Constants.PROP_VALUE_ABSOLUTE;
    params[1][1] = Constants.PROP_VALUE_ABSOLUTE;
    params[2][0] = "Same Package";
    params[2][1] = Constants.PROP_VALUE_SAME;
    basePackageStyle = new RadioGroupFieldEditor(Constants.PROP_BASE_VO_PACKAGE_STYLE, "", 3, params,
            baseGroup);
    basePackageStyle.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            basePackageStyleSelection = event.getNewValue().toString();
            checkScreen();
        }
    });
    basePackageStyle.setPreferenceStore(getLocalPreferenceStore());
    basePackageStyle.load();

    Composite bgc1 = new Composite(baseGroup, SWT.NONE);
    gridLayout = new GridLayout();
    gridLayout.numColumns = 3;
    bgc1.setLayout(gridLayout);
    bgc1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));

    basePackageHelp = new Label(bgc1, SWT.NULL);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 3;
    basePackageHelp.setLayoutData(gd);

    basePackageNameLbl = new Label(bgc1, SWT.NULL);
    basePackageNameLbl.setText("Package:");
    basePackageText = new Text(bgc1, SWT.SINGLE | SWT.BORDER);
    basePackageText.setSize(50, 12);
    gd = new GridData(
            GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL);
    gd.widthHint = 230;
    basePackageText.setLayoutData(gd);
    String basePackageString = Plugin.getProperty(getElement(), Constants.PROP_BASE_VO_PACKAGE_NAME);
    if (null != basePackageString)
        basePackageText.setText(basePackageString);
    else
        basePackageText.setText(Constants.DEFAULT_BASE_VO_PACKAGE);

    basePackageSelectionButton = new Button(bgc1, SWT.NATIVE);
    basePackageSelectionButton.setText("Browse");
    basePackageSelectionButton.addMouseListener(new MouseListener() {
        public void mouseDown(MouseEvent e) {
            try {
                JavaProject javaProject = (JavaProject) JavaCore.create((IProject) getElement());
                IJavaSearchScope searchScope = SearchEngine.createWorkspaceScope();
                SelectionDialog sd = JavaUI.createPackageDialog(getShell(), javaProject,
                        IJavaElementSearchConstants.CONSIDER_REQUIRED_PROJECTS);
                sd.open();
                Object[] objects = sd.getResult();
                if (null != objects && objects.length > 0) {
                    PackageFragment pf = (PackageFragment) objects[0];
                    basePackageText.setText(pf.getElementName());
                }
            } catch (JavaModelException jme) {
                jme.printStackTrace();
            }
        }

        public void mouseDoubleClick(MouseEvent e) {
        }

        public void mouseUp(MouseEvent e) {
        }

    });

    item = new TabItem(folder, SWT.NONE);
    item.setText("Data Access Objects");
    composite = new Composite(folder, SWT.NULL);
    gl = new GridLayout(1, false);
    composite.setLayout(gl);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.grabExcessHorizontalSpace = true;
    composite.setLayoutData(gd);
    item.setControl(composite);

    tComp = new Composite(composite, SWT.NONE);
    managersEnabled = new BooleanFieldEditor(Constants.PROP_GENERATION_DAO_ENABLED,
            "I would like to have DAOs created for me.", tComp);
    managersEnabled.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            checkScreen();
        }
    });
    managersEnabled.setPreferenceStore(getLocalPreferenceStore());
    managersEnabled.load();

    new Label(parent, SWT.NULL);

    // Path text field
    managerGroup = new Group(composite, SWT.NULL);
    managerGroup.setText("Base Package Location");
    gridLayout = new GridLayout();
    gridLayout.numColumns = 1;
    managerGroup.setLayout(gridLayout);
    managerGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    params = new String[3][2];
    params[0][0] = Constants.PROP_VALUE_RELATIVE;
    params[0][1] = Constants.PROP_VALUE_RELATIVE;
    params[1][0] = Constants.PROP_VALUE_ABSOLUTE;
    params[1][1] = Constants.PROP_VALUE_ABSOLUTE;
    params[2][0] = "Same Package";
    params[2][1] = Constants.PROP_VALUE_SAME;
    managerPackageStyle = new RadioGroupFieldEditor(Constants.PROP_DAO_PACKAGE_STYLE, "", 3, params,
            managerGroup);
    managerPackageStyle.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            managerPackageStyleSelection = event.getNewValue().toString();
            checkScreen();
        }
    });
    managerPackageStyle.setPreferenceStore(getLocalPreferenceStore());
    managerPackageStyle.load();

    bgc1 = new Composite(managerGroup, SWT.NONE);
    gridLayout = new GridLayout();
    gridLayout.numColumns = 3;
    bgc1.setLayout(gridLayout);
    bgc1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    managerPackageHelp = new Label(bgc1, SWT.NULL);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 3;
    managerPackageHelp.setLayoutData(gd);

    managerPackageNameLbl = new Label(bgc1, SWT.NULL);
    managerPackageNameLbl.setText("Package:");
    managerPackageText = new Text(bgc1, SWT.SINGLE | SWT.BORDER);
    managerPackageText.setSize(50, 12);
    gd = new GridData(
            GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
    gd.widthHint = 230;
    managerPackageText.setLayoutData(gd);
    String managerPackageString = Plugin.getProperty(getElement(), Constants.PROP_DAO_PACKAGE_NAME);
    if (null != managerPackageString)
        managerPackageText.setText(managerPackageString);
    else
        managerPackageText.setText(Constants.DEFAULT_DAO_PACKAGE);

    managerPackageSelectionButton = new Button(bgc1, SWT.NATIVE);
    managerPackageSelectionButton.setText("Browse");
    managerPackageSelectionButton.addMouseListener(new MouseListener() {
        public void mouseDown(MouseEvent e) {
            try {
                JavaProject javaProject = (JavaProject) JavaCore.create((IProject) getElement());
                IJavaSearchScope searchScope = SearchEngine.createWorkspaceScope();
                SelectionDialog sd = JavaUI.createPackageDialog(getShell(), javaProject,
                        IJavaElementSearchConstants.CONSIDER_REQUIRED_PROJECTS);
                sd.open();
                Object[] objects = sd.getResult();
                if (null != objects && objects.length > 0) {
                    PackageFragment pf = (PackageFragment) objects[0];
                    managerPackageText.setText(pf.getElementName());
                }
            } catch (JavaModelException jme) {
                jme.printStackTrace();
            }
        }

        public void mouseDoubleClick(MouseEvent e) {
        }

        public void mouseUp(MouseEvent e) {
        }

    });

    subComp = new Composite(bgc1, SWT.NULL);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 3;
    subComp.setLayoutData(gd);
    managerUseBasePackage = new BooleanFieldEditor(Constants.PROP_BASE_DAO_USE_BASE_PACKAGE,
            "I would like the base DAOs in the base value object package", subComp);
    managerUseBasePackage.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            checkScreen();
        }
    });
    managerUseBasePackage.setPreferenceStore(getLocalPreferenceStore());
    managerUseBasePackage.load();

    baseManagerPackageStyleSelectionParent = new Composite(bgc1, SWT.NULL);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 3;
    baseManagerPackageStyleSelectionParent.setLayoutData(gd);
    params = new String[3][2];
    params[0][0] = Constants.PROP_VALUE_RELATIVE;
    params[0][1] = Constants.PROP_VALUE_RELATIVE;
    params[1][0] = Constants.PROP_VALUE_ABSOLUTE;
    params[1][1] = Constants.PROP_VALUE_ABSOLUTE;
    params[2][0] = "DAO Package";
    params[2][1] = Constants.PROP_VALUE_SAME;
    baseManagerPackageStyle = new RadioGroupFieldEditor(Constants.PROP_BASE_DAO_PACKAGE_STYLE,
            "Base DAO Location", 3, params, baseManagerPackageStyleSelectionParent);
    baseManagerPackageStyle.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            baseManagerPackageStyleSelection = event.getNewValue().toString();
            checkScreen();
        }
    });
    baseManagerPackageStyle.setPreferenceStore(getLocalPreferenceStore());
    baseManagerPackageStyle.load();

    baseManagerPackageNameLbl = new Label(bgc1, SWT.NULL);
    baseManagerPackageNameLbl.setText("Package:");
    baseManagerPackageText = new Text(bgc1, SWT.SINGLE | SWT.BORDER);
    baseManagerPackageText.setSize(50, 12);
    gd = new GridData(
            GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
    gd.widthHint = 230;
    baseManagerPackageText.setLayoutData(gd);
    String baseManagerPackageString = Plugin.getProperty(getElement(), Constants.PROP_BASE_DAO_PACKAGE_NAME);
    if (null != baseManagerPackageString)
        baseManagerPackageText.setText(baseManagerPackageString);
    else
        baseManagerPackageText.setText(Constants.DEFAULT_BASE_DAO_PACKAGE);

    baseManagerPackageSelectionButton = new Button(bgc1, SWT.NATIVE);
    baseManagerPackageSelectionButton.setText("Browse");
    baseManagerPackageSelectionButton.addMouseListener(new MouseListener() {
        public void mouseDown(MouseEvent e) {
            try {
                JavaProject javaProject = (JavaProject) JavaCore.create((IProject) getElement());
                IJavaSearchScope searchScope = SearchEngine.createWorkspaceScope();
                SelectionDialog sd = JavaUI.createPackageDialog(getShell(), javaProject,
                        IJavaElementSearchConstants.CONSIDER_REQUIRED_PROJECTS);
                sd.open();
                Object[] objects = sd.getResult();
                if (null != objects && objects.length > 0) {
                    PackageFragment pf = (PackageFragment) objects[0];
                    baseManagerPackageText.setText(pf.getElementName());
                }
            } catch (JavaModelException jme) {
                jme.printStackTrace();
            }
        }

        public void mouseDoubleClick(MouseEvent e) {
        }

        public void mouseUp(MouseEvent e) {
        }

    });

    customManagerComposite = new Composite(composite, SWT.NONE);
    customManager = new BooleanFieldEditor(Constants.PROP_USE_CUSTOM_ROOT_DAO,
            "I would like to use a custom DAO root.", customManagerComposite);
    customManager.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            checkScreen();
        }
    });
    customManager.setPreferenceStore(getLocalPreferenceStore());
    customManager.load();

    managerRootComposite = new Composite(composite, SWT.NONE);
    managerRootComposite.setLayout(new GridLayout(3, false));
    ((GridLayout) managerRootComposite.getLayout()).horizontalSpacing = 9;
    gd = new GridData(GridData.FILL_HORIZONTAL);
    ;
    gd.grabExcessHorizontalSpace = true;
    managerRootComposite.setLayoutData(gd);
    Label lbl = new Label(managerRootComposite, SWT.NONE);
    lbl.setText("DAO Class:");
    daoRootClass = new Text(managerRootComposite, SWT.SINGLE | SWT.BORDER);
    String managerRootClassStr = Plugin.getProperty(getElement(), Constants.PROP_CUSTOM_ROOT_DAO_CLASS);
    if (null != managerRootClassStr)
        daoRootClass.setText(managerRootClassStr);

    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.grabExcessHorizontalSpace = true;
    daoRootClass.setLayoutData(gd);
    Button managerRootButton = new Button(managerRootComposite, SWT.NATIVE);
    managerRootButton.setText("Browse");
    managerRootButton.addMouseListener(new MouseListener() {
        public void mouseDown(MouseEvent e) {
            try {
                JavaProject javaProject = (JavaProject) JavaCore.create((IProject) getElement());
                IJavaSearchScope searchScope = SearchEngine.createWorkspaceScope();
                SelectionDialog sd = JavaUI.createTypeDialog(getShell(), new ApplicationWindow(getShell()),
                        searchScope, IJavaElementSearchConstants.CONSIDER_CLASSES, false);
                sd.open();
                Object[] objects = sd.getResult();
                if (null != objects && objects.length > 0) {
                    IType type = (IType) objects[0];
                    daoRootClass.setText(type.getFullyQualifiedName());
                }
            } catch (JavaModelException jme) {
                jme.printStackTrace();
            }
        }

        public void mouseDoubleClick(MouseEvent e) {
        }

        public void mouseUp(MouseEvent e) {
        }

    });

    lbl = new Label(managerRootComposite, SWT.NONE);
    lbl.setText("DAO Exception:");
    daoExceptionClass = new Text(managerRootComposite, SWT.SINGLE | SWT.BORDER);
    String daoExceptionClassStr = Plugin.getProperty(getElement(), Constants.PROP_BASE_DAO_EXCEPTION);
    if (null != daoExceptionClassStr)
        daoExceptionClass.setText(daoExceptionClassStr);
    else
        daoExceptionClass.setText("org.hibernate.HibernateException");

    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.grabExcessHorizontalSpace = true;
    daoExceptionClass.setLayoutData(gd);
    Button daoExceptionButton = new Button(managerRootComposite, SWT.NATIVE);
    daoExceptionButton.setText("Browse");
    daoExceptionButton.addMouseListener(new MouseListener() {
        public void mouseDown(MouseEvent e) {
            try {
                JavaProject javaProject = (JavaProject) JavaCore.create((IProject) getElement());
                IJavaSearchScope searchScope = SearchEngine.createWorkspaceScope();
                SelectionDialog sd = JavaUI.createTypeDialog(getShell(), new ApplicationWindow(getShell()),
                        searchScope, IJavaElementSearchConstants.CONSIDER_CLASSES, false);
                sd.open();
                Object[] objects = sd.getResult();
                if (null != objects && objects.length > 0) {
                    IType type = (IType) objects[0];
                    daoExceptionClass.setText(type.getFullyQualifiedName());
                }
            } catch (JavaModelException jme) {
                jme.printStackTrace();
            }
        }

        public void mouseDoubleClick(MouseEvent e) {
        }

        public void mouseUp(MouseEvent e) {
        }

    });
}

From source file:com.hudson.hibernatesynchronizer.properties.HibernateProperties.java

License:Apache License

private void addTemplates(Composite parent) {
    Composite tComp = new Composite(parent, SWT.NULL);
    GridLayout gl = new GridLayout(1, false);
    gl.horizontalSpacing = 0;/* ww w .  j  a va  2  s .c  om*/
    gl.verticalSpacing = 0;
    tComp.setLayout(gl);
    GridData gd = new GridData(GridData.FILL_BOTH);
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;
    tComp.setLayoutData(gd);

    Composite composite = new Composite(tComp, SWT.NULL);
    gl = new GridLayout(2, false);
    composite.setLayout(gl);
    gd = new GridData(GridData.FILL_BOTH);
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;
    composite.setLayoutData(gd);

    templateTable = new Table(composite, SWT.BORDER | SWT.H_SCROLL | SWT.CHECK | SWT.FULL_SELECTION);
    templateTable.setVisible(true);
    templateTable.setLinesVisible(false);
    templateTable.setHeaderVisible(true);
    templateTable.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            int rowsChecked = 0;
            for (int i = 0; i < templateTable.getItemCount(); i++) {
                if (templateTable.getItem(i).getChecked())
                    rowsChecked++;
            }
            if (rowsChecked > 0) {
                exportButton.setEnabled(true);
                deleteButton.setEnabled(true);
            } else {
                exportButton.setEnabled(false);
                deleteButton.setEnabled(false);
            }
            if (templateTable.getSelectionIndex() >= 0) {
                editButton.setEnabled(true);
                deleteButton.setEnabled(true);
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    templateTable.addKeyListener(new DeleteKeyListener(this, (IProject) getElement()));
    templateTable.addMouseListener(new TableDoubleClickListener(this));
    GridData data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 140;
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;
    templateTable.setLayoutData(data);

    // create the columns
    TableColumn templateColumn = new TableColumn(templateTable, SWT.LEFT);
    TableColumn nameColumn = new TableColumn(templateTable, SWT.LEFT);
    TableColumn typeColumn = new TableColumn(templateTable, SWT.LEFT);
    templateColumn.setText("Template");
    nameColumn.setText("Name");
    ColumnLayoutData templateColumnLayout = new ColumnWeightData(50, false);
    ColumnLayoutData nameColumnLayout = new ColumnWeightData(50, false);

    // set columns in Table layout
    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(templateColumnLayout);
    tableLayout.addColumnData(nameColumnLayout);
    templateTable.setLayout(tableLayout);

    Composite buttonComposite = new Composite(composite, SWT.NULL);
    GridLayout fl = new GridLayout(1, false);
    fl.verticalSpacing = 2;
    buttonComposite.setLayout(fl);
    data = new GridData();
    data.horizontalAlignment = GridData.BEGINNING;
    data.verticalAlignment = GridData.BEGINNING;
    buttonComposite.setLayoutData(data);

    importButton = new Button(buttonComposite, SWT.NATIVE);
    importButton.setText("Import");
    importButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            FileDialog fd = new FileDialog(getShell());
            fd.setFilterExtensions(new String[] { "*.zip" });
            String fileName = fd.open();
            if (null != fileName) {
                try {
                    IProject project = (IProject) getElement();
                    long uniqueId = System.currentTimeMillis();
                    ZipFile zipFile = new ZipFile(new File(fileName), ZipFile.OPEN_READ);
                    for (Enumeration enumeration = zipFile.entries(); enumeration.hasMoreElements();) {
                        ZipEntry entry = (ZipEntry) enumeration.nextElement();
                        String currentEntry = entry.getName();
                        if (currentEntry.endsWith(".pt")) {
                            BufferedInputStream is = new BufferedInputStream(zipFile.getInputStream(entry));
                            TemplateLocation templateLocation = new TemplateLocation(is, project);
                            if (null != templateLocation.getTemplate()) {
                                ResourceManager.getInstance(project).addTemplateLocation(templateLocation);
                            }
                        }
                    }
                    reloadTemplates();
                } catch (Exception exc) {
                    HSUtil.showError(exc.getMessage(), getShell());
                }
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    exportButton = new Button(buttonComposite, SWT.NATIVE);
    exportButton.setText("Export");
    exportButton.setEnabled(false);
    exportButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            FileDialog fd = new FileDialog(getShell());
            fd.setFilterExtensions(new String[] { "*.zip" });
            String fileName = fd.open();
            if (null != fileName && fileName.trim().length() > 0) {
                fileName = fileName.trim();
                if (fileName.indexOf(".") < 0)
                    fileName = fileName + ".zip";
                try {
                    IProject project = (IProject) getElement();
                    long uniqueId = System.currentTimeMillis();
                    List projectTemplates = new ArrayList();
                    for (int i = 0; i < templateTable.getItemCount(); i++) {
                        if (templateTable.getItem(i).getChecked()) {
                            TemplateLocation templateLocation = (TemplateLocation) ResourceManager
                                    .getInstance(project).getTemplateLocations().get(i);
                            projectTemplates.add(templateLocation);
                            templateTable.getItem(i).setChecked(false);
                        }
                    }
                    exportButton.setEnabled(false);
                    ZipOutputStream zos = null;
                    try {
                        zos = new ZipOutputStream(new FileOutputStream(new File(fileName)));
                        for (Iterator i = projectTemplates.iterator(); i.hasNext();) {
                            TemplateLocation templateLocation = (TemplateLocation) i.next();
                            ZipEntry entry = new ZipEntry(uniqueId++ + ".pt");
                            zos.putNextEntry(entry);
                            zos.write(templateLocation.toString().getBytes());
                            zos.closeEntry();
                        }
                    } finally {
                        if (null != zos)
                            zos.close();
                    }
                    MessageDialog.openInformation(getShell(), "Export Complete", projectTemplates.size()
                            + " project templates sucessfully exported to " + fileName + ".");
                } catch (Exception exc) {
                    HSUtil.showError(exc.getMessage(), getShell());
                }
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    new Label(buttonComposite, SWT.NULL);
    selectAllButton = new Button(buttonComposite, SWT.NATIVE);
    selectAllButton.setText("Select All");
    selectAllButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            TableItem[] items = templateTable.getItems();
            for (int i = 0; i < items.length; i++) {
                items[i].setChecked(true);
            }
            if (items.length > 0) {
                deleteButton.setEnabled(true);
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    selectNoneButton = new Button(buttonComposite, SWT.NATIVE);
    selectNoneButton.setText("Deselect All");
    selectNoneButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            TableItem[] items = templateTable.getItems();
            for (int i = 0; i < items.length; i++) {
                items[i].setChecked(false);
            }
            if (templateTable.getSelection().length == 0) {
                deleteButton.setEnabled(false);
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    buttonComposite = new Composite(tComp, SWT.NULL);
    fl = new GridLayout(3, false);
    fl.marginWidth = 5;
    fl.horizontalSpacing = 2;
    buttonComposite.setLayout(fl);
    data = new GridData();
    data.horizontalAlignment = GridData.BEGINNING;
    data.verticalAlignment = GridData.BEGINNING;
    data.horizontalSpan = 2;
    buttonComposite.setLayoutData(data);
    addButton = new Button(buttonComposite, SWT.NATIVE);
    addButton.setText("New");
    addButton.setVisible(true);
    addButton.addSelectionListener(new AddButtonListener(this, ((IProject) getElement())));
    editButton = new Button(buttonComposite, SWT.NATIVE);
    editButton.setText("Edit");
    editButton.addSelectionListener(new EditButtonListener(this));
    deleteButton = new Button(buttonComposite, SWT.NATIVE);
    deleteButton.setText("Delete");
    deleteButton.addSelectionListener(new DeleteButtonListener(this, ((IProject) getElement())));

    reloadTemplates();

    composite = new Composite(tComp, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));
    gd = new GridData(GridData.FILL_BOTH);
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = true;
    composite.setLayoutData(gd);

    Label label = new Label(composite, SWT.NULL);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.grabExcessHorizontalSpace = true;
    gd.horizontalSpan = 2;
    label.setLayoutData(gd);
    label.setText("Context Parameters");

    parametersTable = new Table(composite, SWT.BORDER | SWT.H_SCROLL | SWT.FULL_SELECTION);
    parametersTable.setVisible(true);
    parametersTable.setLinesVisible(false);
    parametersTable.setHeaderVisible(true);
    parametersTable.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            editParameterButton.setEnabled(true);
            deleteParameterButton.setEnabled(true);
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    parametersTable.addKeyListener(new ParameterDeleteKeyListener(this, (IProject) getElement()));
    parametersTable.addMouseListener(new ParameterDoubleClickListener(this));

    // create the columns
    TableColumn keyColumn = new TableColumn(parametersTable, SWT.LEFT);
    TableColumn valueColumn = new TableColumn(parametersTable, SWT.LEFT);
    keyColumn.setText("Name");
    valueColumn.setText("Value");
    ColumnLayoutData keyColumnLayout = new ColumnWeightData(35, false);
    ColumnLayoutData valueColumnLayout = new ColumnWeightData(65, false);

    // set columns in Table layout
    tableLayout = new TableLayout();
    tableLayout.addColumnData(keyColumnLayout);
    tableLayout.addColumnData(valueColumnLayout);
    parametersTable.setLayout(tableLayout);

    data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 50;
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;
    parametersTable.setLayoutData(data);

    buttonComposite = new Composite(composite, SWT.NONE);
    data = new GridData();
    data.horizontalAlignment = GridData.BEGINNING;
    data.verticalAlignment = GridData.BEGINNING;
    buttonComposite.setLayoutData(data);
    fl = new GridLayout(3, false);
    fl.horizontalSpacing = 2;
    buttonComposite.setLayout(fl);
    buttonComposite.setVisible(true);
    addParameterButton = new Button(buttonComposite, SWT.NATIVE);
    addParameterButton.setText("New");
    addParameterButton.setVisible(true);
    addParameterButton.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL));
    addParameterButton.addSelectionListener(new AddParameterButtonListener(this, (IProject) getElement()));
    editParameterButton = new Button(buttonComposite, SWT.NATIVE);
    editParameterButton.setText("Edit");
    editParameterButton.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL));
    editParameterButton.addSelectionListener(new EditParameterButtonListener(this, (IProject) getElement()));
    deleteParameterButton = new Button(buttonComposite, SWT.NATIVE);
    deleteParameterButton.setText("Delete");
    deleteParameterButton.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL));
    deleteParameterButton
            .addSelectionListener(new DeleteParameterButtonListener(this, ((IProject) getElement())));

    reloadTemplateParameters();

    Composite subComp = new Composite(tComp, SWT.NULL);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.grabExcessHorizontalSpace = true;
    subComp.setLayoutData(gd);
    subComp.setLayout(new GridLayout(4, false));
    label = new Label(subComp, SWT.NONE);
    label.setText("Context Object");
    contextObject = new Text(subComp, SWT.BORDER);
    contextObject.setEnabled(false);
    contextObject.setBackground(new Color(null, 255, 255, 255));
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.widthHint = 200;
    gd.grabExcessHorizontalSpace = true;
    contextObject.setLayoutData(gd);
    String contextObjString = Plugin.getProperty(getElement(), Constants.PROP_CONTEXT_OBJECT);
    if (null != contextObjString)
        contextObject.setText(contextObjString);

    Button contextObjectButton = new Button(subComp, SWT.NATIVE);
    contextObjectButton.setText("Browse");
    contextObjectButton.addMouseListener(new MouseListener() {
        public void mouseDown(MouseEvent e) {
            try {
                JavaProject javaProject = (JavaProject) JavaCore.create((IProject) getElement());
                IJavaSearchScope searchScope = SearchEngine.createWorkspaceScope();
                SelectionDialog sd = JavaUI.createTypeDialog(getShell(), new ApplicationWindow(getShell()),
                        searchScope, IJavaElementSearchConstants.CONSIDER_CLASSES, false);
                sd.open();
                Object[] objects = sd.getResult();
                if (null != objects && objects.length > 0) {
                    IType type = (IType) objects[0];
                    contextObject.setText(type.getFullyQualifiedName());
                }
            } catch (JavaModelException jme) {
                jme.printStackTrace();
            }
        }

        public void mouseDoubleClick(MouseEvent e) {
        }

        public void mouseUp(MouseEvent e) {
        }

    });
    Button clearButton = new Button(subComp, SWT.NATIVE);
    clearButton.setText("Clear");
    clearButton.addMouseListener(new MouseListener() {
        public void mouseDown(MouseEvent e) {
            contextObject.setText("");
        }

        public void mouseDoubleClick(MouseEvent e) {
        }

        public void mouseUp(MouseEvent e) {
        }

    });

    label = new Label(subComp, SWT.NONE);
    label.setText("Tip: You can reference this object in your templates as ${obj}");
    gd = new GridData();
    gd.horizontalSpan = 2;
    gd.grabExcessHorizontalSpace = true;
    label.setLayoutData(gd);
}

From source file:com.hudson.hibernatesynchronizer.wizard.NewMappingWizardPage.java

License:GNU General Public License

public Composite addProperties(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout(1, false);
    container.setLayout(layout);//w  w  w. j  av a 2 s  .  com
    layout.verticalSpacing = 9;

    Composite subComp = new Composite(container, SWT.NULL);
    GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
    gd.horizontalSpan = 2;
    subComp.setLayoutData(gd);
    layout = new GridLayout();
    subComp.setLayout(layout);
    layout.numColumns = 3;
    Label label = new Label(subComp, SWT.NULL);
    label.setText("Extension");
    extensionText = new Text(subComp, SWT.BORDER);
    String extension = Plugin.getDefault().getPreferenceStore().getString("Extension");
    if (null != extension && extension.trim().length() > 0)
        extensionText.setText(extension);
    else
        extensionText.setText("hbm");
    gd = new GridData();
    gd.widthHint = 150;
    gd.horizontalSpan = 2;
    extensionText.setLayoutData(gd);

    label = new Label(subComp, SWT.NULL);
    label.setText("Composite ID Name");
    compositeIdNameText = new Text(subComp, SWT.BORDER);
    String compositeIdName = Plugin.getDefault().getPreferenceStore().getString("CompositeIdName");
    if (null != compositeIdName && compositeIdName.trim().length() > 0)
        compositeIdNameText.setText(compositeIdName);
    else
        compositeIdNameText.setText("id");
    gd = new GridData();
    gd.widthHint = 150;
    gd.horizontalSpan = 2;
    compositeIdNameText.setLayoutData(gd);

    label = new Label(subComp, SWT.NULL);
    label.setText("ID Generator");
    generatorText = new Text(subComp, SWT.BORDER);
    String generator = Plugin.getDefault().getPreferenceStore().getString("Generator");
    if (null != generator && generator.trim().length() > 0)
        generatorText.setText(generator);
    else
        generatorText.setText("vm");
    gd = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
    gd.widthHint = 150;
    generatorText.setLayoutData(gd);
    Button browseButton = new Button(subComp, SWT.NATIVE);
    browseButton.setText("Browse");
    browseButton.addMouseListener(new MouseListener() {
        public void mouseDown(MouseEvent e) {
            try {
                IJavaSearchScope searchScope = null;
                if (null != project) {
                    searchScope = SearchEngine.createJavaSearchScope(new IJavaElement[] { project });
                } else {
                    searchScope = SearchEngine.createWorkspaceScope();
                }
                SelectionDialog sd = JavaUI.createTypeDialog(getShell(), new ApplicationWindow(getShell()),
                        searchScope, IJavaElementSearchConstants.CONSIDER_CLASSES, false);
                sd.open();
                Object[] objects = sd.getResult();
                if (null != objects && objects.length > 0) {
                    IType type = (IType) objects[0];
                    generatorText.setText(type.getFullyQualifiedName());
                }
            } catch (JavaModelException jme) {
            }
        }

        public void mouseDoubleClick(MouseEvent e) {
        }

        public void mouseUp(MouseEvent e) {
        }
    });

    new Label(subComp, SWT.NULL);

    setComp = new Composite(container, SWT.NULL);
    layout = new GridLayout();
    container.setLayout(layout);
    layout.numColumns = 2;
    gd = new GridData();
    gd.horizontalSpan = 2;
    gd.grabExcessHorizontalSpace = true;
    subComp.setData(gd);
    createSets = new BooleanFieldEditor("CreateSets",
            "Generate Sets to represent inverse foreign relationships", setComp);
    Plugin.getDefault().getPreferenceStore().setDefault("CreateSets", true);
    createSets.setPreferenceStore(Plugin.getDefault().getPreferenceStore());
    createSets.load();
    createSets.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            useLazyLoading.setEnabled(createSets.getBooleanValue(), setComp);
        }
    });
    useLazyLoading = new BooleanFieldEditor("UseLazyLoading", "Use Lazy Loading", setComp);
    useLazyLoading.setPreferenceStore(Plugin.getDefault().getPreferenceStore());
    useLazyLoading.load();
    if (!createSets.getBooleanValue())
        useLazyLoading.setEnabled(false, setComp);
    startLowerCase = new BooleanFieldEditor("StartLowerCase", "Start Properties with Lower Case", setComp);
    startLowerCase.setPreferenceStore(Plugin.getDefault().getPreferenceStore());
    startLowerCase.load();
    startLowerCase.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            compositeIdNameCheck();
        }
    });

    subComp = new Composite(setComp, SWT.NULL);
    subComp.setLayout(new GridLayout(3, false));
    useProxies = new BooleanFieldEditor("UseProxies", "Use Proxy Classes", subComp);
    useProxies.setPreferenceStore(Plugin.getDefault().getPreferenceStore());
    useProxies.load();
    useProxies.setPropertyChangeListener(new IPropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent event) {
            setProxyComposite();
        }
    });
    proxyComposite = new Composite(subComp, SWT.NULL);
    proxyComposite.setLayout(new GridLayout(2, false));
    label = new Label(proxyComposite, SWT.NULL);
    label.setText("    Proxy Class Name");
    proxyNameText = new Text(proxyComposite, SWT.BORDER);
    String proxyClassName = Plugin.getDefault().getPreferenceStore().getString("ProxyClassName");
    if (null != proxyClassName && proxyClassName.trim().length() > 0)
        proxyNameText.setText(proxyClassName);
    else
        proxyNameText.setText("${className}Proxy");
    gd = new GridData();
    gd.widthHint = 150;
    proxyNameText.setLayoutData(gd);
    setProxyComposite();
    compositeIdNameCheck();
    return container;
}