Example usage for org.eclipse.jface.viewers TreeViewer TreeViewer

List of usage examples for org.eclipse.jface.viewers TreeViewer TreeViewer

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewer TreeViewer.

Prototype

public TreeViewer(Composite parent, int style) 

Source Link

Document

Creates a tree viewer on a newly-created tree control under the given parent.

Usage

From source file:com.cloudbees.eclipse.ui.views.CBTreeView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {
    this.viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    this.viewer.setContentProvider(new CBContentProvider(this));
    this.viewer.setLabelProvider(new CBLabelProvider(this));
    this.viewer.setSorter(new NameSorter());
    this.viewer.setInput(getViewSite());

    for (ICBTreeProvider provider : this.providers) {
        provider.setViewer(this.viewer);
        getSite().setSelectionProvider(this.viewer);
    }/* w  ww .  j  a  v a2s  .  c  o m*/

    this.viewer.addOpenListener(new IOpenListener() {
        public void open(final OpenEvent event) {
            ISelection sel = event.getSelection();

            if (sel instanceof TreeSelection) {

                Object el = ((TreeSelection) sel).getFirstElement();

                //boolean opened = false;
                for (ICBTreeProvider provider : CBTreeView.this.providers) {
                    //opened |= ;
                    if (provider.open(el)) {
                        break;
                    }
                }
                /*          if (!opened) {
                            boolean exp = CBTreeView.this.viewer.getExpandedState(el);
                            if (exp) {
                              CBTreeView.this.viewer.collapseToLevel(el, 1);
                            } else {
                              CBTreeView.this.viewer.expandToLevel(el, 1);
                            }
                          }
                */ }
        }
    });

    MenuManager popupMenu = new MenuManager();
    popupMenu.setRemoveAllWhenShown(true);

    popupMenu.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(final IMenuManager mgr) {

        }
    });

    IActionBars bars = getViewSite().getActionBars();
    IMenuManager pullDownMenu = bars.getMenuManager();
    IToolBarManager toolbarMenu = bars.getToolBarManager();

    for (ICBTreeProvider provider : this.providers) {
        for (CBTreeContributor contributor : provider.getContributors()) {
            if (contributor.isPopup()) {
                contributor.contributeTo(popupMenu);
            }
            if (contributor.isPullDown()) {
                contributor.contributeTo(pullDownMenu);
            }
            if (contributor.isToolbar()) {
                contributor.contributeTo(toolbarMenu);
            }
        }
    }

    pullDownMenu.add(new CBTreeSeparator(SeparatorLocation.PULL_DOWN));
    pullDownMenu.add(this.showConsoleAction);
    pullDownMenu.add(new CBTreeSeparator(SeparatorLocation.PULL_DOWN));
    pullDownMenu.add(this.configureSshAction);
    pullDownMenu.add(new CBTreeSeparator(SeparatorLocation.PULL_DOWN));
    pullDownMenu.add(new ActiveAccountAndRegionContributionItem(true));

    pullDownMenu.addMenuListener(statusUpdateListener);
    //pullDownMenu.add(this.configureAccountAction);

    Menu menu = popupMenu.createContextMenu(this.viewer.getTree());
    this.viewer.getTree().setMenu(menu);
    getSite().registerContextMenu(popupMenu, this.viewer);

    //Not loading here anymore as there is now improved loading workflow
    //CloudBeesUIPlugin.getDefault().reloadAllJenkins(false);

}

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

License:Open Source License

public EventsTab(Composite parent, int style) {
    super(parent, style);
    TreeColumnLayout layout = new TreeColumnLayout();
    getControl().setLayout(layout);/*w w  w  . j a  v  a  2s  . co  m*/
    viewer = new TreeViewer(getControl(), SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL);
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    viewer.getTree().setLayoutData(gd);

    TreeViewerColumn typeColumn = new TreeViewerColumn(viewer, SWT.NONE);
    layout.setColumnData(typeColumn.getColumn(), new ColumnWeightData(400));

    viewer.setLabelProvider(new EventLabelProvider(viewer));
    viewer.setContentProvider(new EventContentProvider());
    viewer.getTree().addMouseListener(new MouseListener() {

        @Override
        public void mouseUp(MouseEvent e) {
        }

        @Override
        public void mouseDown(MouseEvent e) {
        }

        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ISelection sel = viewer.getSelection();
            if (sel instanceof IStructuredSelection) {
                Object selected = ((IStructuredSelection) sel).getFirstElement();
                if (selected instanceof EventItem) {
                    EventItem eventItem = (EventItem) selected;
                    if (eventItem.isStacktrace()) {
                        final String str = eventItem.getValue();
                        final String typeName;
                        final int lineNumber;
                        try {
                            typeName = getTypeName(str);
                            lineNumber = getLineNumber(str);
                        } catch (CoreException e1) {
                            ErrorDialog.openError(ContrastUIActivator.getActiveWorkbenchShell(), "Error",
                                    "Stacktrace Error", e1.getStatus());
                            return;
                        }
                        Job search = new Job("Searching for code in workspace...") {
                            @Override
                            protected IStatus run(IProgressMonitor monitor) {
                                Set<IType> result = null;
                                try {
                                    if (str.contains(".java")) {
                                        result = findTypeInWorkspace(typeName);
                                        searchCompleted(result, typeName, lineNumber, null);
                                    } else {
                                        List<IFile> resultFile = findFileInWorkspace(typeName);
                                        searchCompleted(resultFile, typeName, lineNumber, null);
                                    }
                                } catch (CoreException e) {
                                    searchCompleted(null, typeName, lineNumber, e.getStatus());
                                }
                                return Status.OK_STATUS;
                            }

                        };
                        search.schedule();
                    }
                }
            }
        }
    });
}

From source file:com.density.ezsbt.views.SbtView.java

License:Apache License

/**
 * This is a callback that will allow us to create the viewer and initialize
 * it.//from   w  w w .  j a  v a 2  s .c om
 */
public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
    drillDownAdapter = new DrillDownAdapter(viewer);
    viewer.setContentProvider(viewContentProvider);
    viewer.setLabelProvider(new ViewLabelProvider());
    viewer.setSorter(new NameSorter());
    viewer.setInput(getViewSite());

    // Create the help context id for the viewer's control
    PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), PluginConstants.CONTROL_ID);
    makeActions();
    addKeyListener();
    addResourceChangeListener();
    addDragAndDrop();
    hookContextMenu();
    hookDoubleClickAction();
    contributeToActionBars();
}

From source file:com.drgarbage.ast.ASTPanel.java

License:Apache License

/**
 * Constructs a control panel with a tree object..
 * @param parent parent a composite control which will be the 
 *               parent of the new instance (cannot be null)
 * @param style the style of control to construct
 */// ww w .  j  a va2  s .  co  m
public ASTPanel(Composite parent, int style) {
    super(parent, style);

    GridLayout gridLayout = new GridLayout();
    super.setLayout(gridLayout);

    treeViewer = new TreeViewer(this, SWT.BORDER | SWT.SINGLE | SWT.FILL);
    gridLayout = new GridLayout();
    gridLayout.numColumns = 1;
    treeViewer.getControl().setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL
            | GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL));

    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
         */
        public void selectionChanged(SelectionChangedEvent event) {
            /* select text in the referenced resource */
            ISelection sel = event.getSelection();
            if (sel instanceof TreeSelection) {
                TreeSelection ts = (TreeSelection) sel;
                Object o = ts.getFirstElement();
                if (o != null) {
                    selectedModelElement = (TreeModel) o;
                    ASTNode node = selectedModelElement.getNode();
                    if (node != null) {
                        editorPart.selectAndReveal(node.getStartPosition(), node.getLength());
                    }
                }
            }
        }
    });

    treeViewer.setContentProvider(new TreeContentProvider());
    treeViewer.setLabelProvider(new ILabelProvider() {

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
         */
        public void addListener(ILabelProviderListener listener) {
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
         */
        public void dispose() {
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
         */
        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
         */
        public void removeListener(ILabelProviderListener listener) {
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
         */
        public Image getImage(Object element) {
            ASTNode n;
            if (element instanceof TreeModel) {
                TreeModel tm = (TreeModel) element;
                n = tm.getNode();
            } else {
                n = (ASTNode) element;
            }
            Image i = ASTGraphUtil.getImage(n);
            return i;
        }

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
         */
        public String getText(Object element) {
            TreeModel tm = (TreeModel) element;
            ASTNode n = tm.getNode();
            String s = ASTGraphUtil.getNodeDescr(n);
            return s;
        }

    });

    MenuManager mm = new MenuManager();

    IAction action = new Action(CoreMessages.ASTView_Action_Generate_AST_Graph) {

        /* (non-Javadoc)
         * @see org.eclipse.jface.action.Action#run()
         */
        public void run() {
            if (selectedModelElement != null) {
                IDirectedGraphExt graph = ASTGraphUtil.createGraphFromASTtree(selectedModelElement);

                IExternalCommunication comunicationObject = CorePlugin.getExternalCommunication();
                if (comunicationObject == null) {
                    String msg = CoreMessages.ERROR_Opening_Graph_in_CFGF_failed + '\n'
                            + CoreMessages.ERROR_CFGF_is_not_installed;
                    Messages.error(msg);
                    return;
                }

                String fileName = treeName + "-ast-tree.graph";
                comunicationObject.generateDiagramFromGraph(fileName, graph);
            }
        }
    };
    action.setImageDescriptor(CoreImg.astview_new_16x16);
    mm.add(action);
    Menu menu = mm.createContextMenu(treeViewer.getControl());
    treeViewer.getControl().setMenu(menu);

    /* 
     * Add a resource listener to refresh the content 
     * if the input resource has been modified. 
     */
    JavaCore.addPreProcessingResourceChangedListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
}

From source file:com.drgarbage.bytecodevisualizer.view.OperandStackViewPage.java

License:Apache License

/**
 * Creates the tree viewer of the operand stack view.
 * @param parent composite//from  w w  w  . j av a  2 s .  com
 */
void createTreeViewer(Composite parent) {
    treeViewer = new TreeViewer(parent, SWT.BORDER);

    Tree tree = treeViewer.getTree();
    column = new TreeColumn(tree, SWT.LEFT, 0);
    column.setMoveable(true);
    column.setText(BytecodeVisualizerMessages.OpstackBytecodeInstrColumnName);
    column.setWidth(200);

    column = new TreeColumn(tree, SWT.LEFT, 1);
    column.setMoveable(true);
    column.setText(BytecodeVisualizerMessages.OpstackOffsetColumnName);
    column.setWidth(40);

    column3 = new TreeColumn(tree, SWT.RIGHT);
    column3.setAlignment(SWT.LEFT);
    column3.setText(BytecodeVisualizerMessages.OpstackBeforeColumnName);
    column3.setWidth(100);

    column4 = new TreeColumn(tree, SWT.RIGHT);
    column4.setAlignment(SWT.LEFT);
    column4.setText(BytecodeVisualizerMessages.OpstackAfterColumnName);
    column4.setWidth(100);

    column5 = new TreeColumn(tree, SWT.RIGHT);
    column5.setAlignment(SWT.LEFT);
    column5.setText(BytecodeVisualizerMessages.OpstackDepthColumnName);
    column5.setWidth(100);

    column6 = new TreeColumn(tree, SWT.RIGHT);
    column6.setAlignment(SWT.LEFT);
    column6.setText(BytecodeVisualizerMessages.OpstackDescriptionColumnName);
    column6.setWidth(0); /* Description Column is hidden as default */

    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    int order[] = { ColumnIndex.OPCODEMNEMONIC.getIndex(), ColumnIndex.OFFSET.getIndex(),
            ColumnIndex.OPSTACKBEFORE.getIndex(), ColumnIndex.OPSTACKAFTER.getIndex(),
            ColumnIndex.OPSTACKDEPTH.getIndex(), ColumnIndex.DESCRIPTION.getIndex() };
    tree.setColumnOrder(order);

    treeViewer.setContentProvider(new TreeViewContentProvider());
    treeViewer.setLabelProvider(new TreeTableLabelProvider());

    treeViewer.expandAll();

    /* selection listener for line synchronization */
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
         */
        public void selectionChanged(SelectionChangedEvent arg0) {
            ISelection sel = arg0.getSelection();
            if (!sel.isEmpty()) {
                /* set a mutex to avoid the call back from the editor */
                setTreeViewerSelectionMutex(true);

                TreeSelection treeSel = (TreeSelection) sel;
                Node n = (Node) treeSel.getFirstElement();
                Object o = n.getObject();

                if (o instanceof IInstructionLine) {
                    IInstructionLine i = (IInstructionLine) o;
                    editor.selectLineAndRevaluate2(i.getLine());
                }

                if (o instanceof String) { /* use parent of the true, false or switch value nodes */
                    IInstructionLine i = (IInstructionLine) n.getParent().getObject();
                    if (i != null) {
                        editor.selectLineAndRevaluate2(i.getLine());
                    }
                }
            }
        }
    });

}

From source file:com.dubture.composer.ui.parts.TreePart.java

License:Open Source License

protected StructuredViewer createStructuredViewer(Composite parent, int style, FormToolkit toolkit) {
    style |= SWT.H_SCROLL | SWT.V_SCROLL;
    if (toolkit == null)
        style |= SWT.BORDER;// w  w  w.j av  a2s.c  om
    else
        style |= toolkit.getBorderStyle();
    TreeViewer treeViewer = new TreeViewer(parent, style);
    treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent e) {
            TreePart.this.selectionChanged((IStructuredSelection) e.getSelection());
        }
    });
    treeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent e) {
            TreePart.this.handleDoubleClick((IStructuredSelection) e.getSelection());
        }
    });
    return treeViewer;
}

From source file:com.dubture.pdt.formatter.internal.ui.preferences.formatter.LineWrappingTabPage.java

License:Open Source License

protected void doCreatePreferences(Composite composite, int numColumns) {

    fOptionsComposite = composite;/*from   www  .  j ava  2 s. c  o  m*/

    final Group lineWidthGroup = createGroup(numColumns, composite,
            FormatterMessages.LineWrappingTabPage_general_settings);

    createNumberPref(lineWidthGroup, numColumns,
            FormatterMessages.LineWrappingTabPage_width_indent_option_max_line_width,
            CodeFormatterConstants.FORMATTER_LINE_SPLIT, 0, 9999);
    createNumberPref(lineWidthGroup, numColumns,
            FormatterMessages.LineWrappingTabPage_width_indent_option_default_indent_wrapped,
            CodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION, 0, 9999);
    createNumberPref(lineWidthGroup, numColumns,
            FormatterMessages.LineWrappingTabPage_width_indent_option_default_indent_array,
            CodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION_FOR_ARRAY_INITIALIZER, 0, 9999);
    //      createCheckboxPref(lineWidthGroup, numColumns,
    //            FormatterMessages.LineWrappingTabPage_do_not_join_lines,
    //            CodeFormatterConstants.FORMATTER_JOIN_WRAPPED_LINES, TRUE_FALSE);
    //      createCheckboxPref(
    //            lineWidthGroup,
    //            numColumns,
    //            FormatterMessages.LineWrappingTabPage_wrap_outer_expressions_when_nested,
    //            CodeFormatterConstants.FORMATTER_WRAP_OUTER_EXPRESSIONS_WHEN_NESTED,
    //            FALSE_TRUE);

    fCategoriesViewer = new TreeViewer(composite /*categoryGroup*/,
            SWT.MULTI | SWT.BORDER | SWT.READ_ONLY | SWT.V_SCROLL);
    fCategoriesViewer.setContentProvider(new ITreeContentProvider() {
        public Object[] getElements(Object inputElement) {
            return ((Collection) inputElement).toArray();
        }

        public Object[] getChildren(Object parentElement) {
            return ((Category) parentElement).children.toArray();
        }

        public Object getParent(Object element) {
            return null;
        }

        public boolean hasChildren(Object element) {
            return !((Category) element).children.isEmpty();
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }

        public void dispose() {
        }
    });
    fCategoriesViewer.setLabelProvider(new LabelProvider());
    fCategoriesViewer.setInput(fCategories);

    fCategoriesViewer.setExpandedElements(fCategories.toArray());

    final GridData gd = createGridData(numColumns, GridData.FILL_BOTH, SWT.DEFAULT);
    gd.heightHint = fPixelConverter.convertHeightInCharsToPixels(5);
    fCategoriesViewer.getControl().setLayoutData(gd);

    fOptionsGroup = createGroup(numColumns, composite, ""); //$NON-NLS-1$

    // label "Select split style:"
    fWrappingStylePolicy = createLabel(numColumns, fOptionsGroup,
            FormatterMessages.LineWrappingTabPage_wrapping_policy_label_text);

    // combo SplitStyleCombo
    fWrappingStyleCombo = new Combo(fOptionsGroup, SWT.SINGLE | SWT.READ_ONLY);
    SWTUtil.setDefaultVisibleItemCount(fWrappingStyleCombo);
    fWrappingStyleCombo.setItems(WRAPPING_NAMES_REDUCED);
    fWrappingStyleCombo.setLayoutData(createGridData(numColumns, GridData.HORIZONTAL_ALIGN_FILL, 0));

    // button "Force split"
    fForceSplit = new Button(fOptionsGroup, SWT.CHECK);
    String label = FormatterMessages.LineWrappingTabPage_force_split_checkbox_text;
    fForceSplit.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, numColumns - 1, 1));
    fForceSplit.setText(label);

    fForceSplit.setVisible(true);

    // button "Wrap before operator"
    Preference expressionWrapPositionPreference = createCheckboxPref(fOptionsGroup, 1,
            FormatterMessages.LineWrappingTabPage_binary_expression_wrap_operator,
            CodeFormatterConstants.FORMATTER_WRAP_BEFORE_BINARY_OPERATOR, FALSE_TRUE);
    Control control = expressionWrapPositionPreference.getControl();
    control.setVisible(false);
    GridData layoutData = (GridData) control.getLayoutData();
    layoutData.exclude = true;
    layoutData.horizontalAlignment = SWT.BEGINNING;
    layoutData.horizontalSpan = numColumns - 1;
    layoutData.grabExcessHorizontalSpace = false;
    fBinaryExpressionCategory.addPreference(expressionWrapPositionPreference);

    // since 1.2
    // button "Wrap before concat operator"
    Preference concatWrapPositionPreference = createCheckboxPref(fOptionsGroup, 1,
            FormatterMessages.LineWrappingTabPage_concat_expression_wrap_operator,
            CodeFormatterConstants.FORMATTER_WRAP_BEFORE_CONCAT_OPERATOR, FALSE_TRUE);
    Control control3 = concatWrapPositionPreference.getControl();
    control3.setVisible(false);
    GridData layoutData3 = (GridData) control3.getLayoutData();
    layoutData3.exclude = true;
    layoutData3.horizontalAlignment = SWT.BEGINNING;
    layoutData3.horizontalSpan = numColumns - 1;
    layoutData3.grabExcessHorizontalSpace = false;
    fConcatExpressionCategory.addPreference(concatWrapPositionPreference);

    // button "Wrap array in arguments"
    Preference arrayWrapPositionPreference = createCheckboxPref(fOptionsGroup, 1,
            FormatterMessages.LineWrappingTabPage_wrap_array_in_arguments,
            CodeFormatterConstants.FORMATTER_WRAP_ARRAY_IN_ARGUMENTS, FALSE_TRUE);
    Control control2 = arrayWrapPositionPreference.getControl();
    control2.setVisible(false);
    GridData layoutData2 = (GridData) control2.getLayoutData();
    layoutData2.exclude = true;
    layoutData2.horizontalAlignment = SWT.BEGINNING;
    layoutData2.horizontalSpan = numColumns - 1;
    layoutData2.grabExcessHorizontalSpace = false;
    fArrayInitializerExpressionsCategory.addPreference(arrayWrapPositionPreference);

    // label "Select indentation style:"
    fIndentStylePolicy = createLabel(numColumns, fOptionsGroup,
            FormatterMessages.LineWrappingTabPage_indentation_policy_label_text);

    // combo IndentStyleCombo
    fIndentStyleCombo = new Combo(fOptionsGroup, SWT.SINGLE | SWT.READ_ONLY);
    SWTUtil.setDefaultVisibleItemCount(fIndentStyleCombo);
    fIndentStyleCombo.setItems(INDENT_NAMES);
    fIndentStyleCombo.setLayoutData(createGridData(numColumns, GridData.HORIZONTAL_ALIGN_FILL, 0));

    // selection state object
    fSelectionState = new SelectionState();

}

From source file:com.ebmwebsourcing.petals.common.extensions.internal.wizards.JavaToWSDLWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {

    Composite container = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    container.setLayout(layout);//from   w  ww.j a  va2 s .c o  m
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    // Container selection
    Label l = new Label(container, SWT.NONE);
    l.setText("Select the Java project that contains the classes.");
    GridData layoutData = new GridData();
    layoutData.horizontalSpan = 2;
    l.setLayoutData(layoutData);

    TreeViewer viewer = new TreeViewer(container, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
    layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.horizontalSpan = 2;
    viewer.getTree().setLayoutData(layoutData);

    viewer.setLabelProvider(new WorkbenchLabelProvider());
    viewer.setContentProvider(new WorkbenchContentProvider() {
        @Override
        public Object[] getChildren(Object o) {

            if (o instanceof IWorkspaceRoot) {
                IProject[] projects = ((IWorkspaceRoot) o).getProjects();
                ArrayList<IJavaProject> result = new ArrayList<IJavaProject>();
                for (IProject project : projects) {

                    try {
                        if (!project.isOpen() || !project.hasNature(JavaCore.NATURE_ID))
                            continue;

                    } catch (CoreException e) {
                        PetalsCommonWsdlExtPlugin.log(e, IStatus.WARNING);
                        continue;
                    }

                    IJavaProject p = JavaCore.create(project);
                    result.add(p);
                }

                return result.toArray();
            }

            return new Object[0];
        }
    });

    // Set page input
    IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
    viewer.setInput(root);
    if (this.javaProject != null) {
        viewer.setSelection(new StructuredSelection(this.javaProject), true);
        viewer.expandToLevel(this.javaProject, 1);
    }

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {

            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            if (!s.isEmpty())
                JavaToWSDLWizardPage.this.javaProject = (IJavaProject) s.getFirstElement();
            else
                JavaToWSDLWizardPage.this.javaProject = null;
            validate();
        }
    });

    viewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            openClassSelectionDialog();
        }
    });

    // Class field
    l = new Label(container, SWT.NONE);
    l.setText("Select the Java interface.");
    layoutData = new GridData();
    layoutData.horizontalSpan = 2;
    layoutData.verticalIndent = 15;
    l.setLayoutData(layoutData);

    this.classText = new Text(container, SWT.BORDER | SWT.SINGLE);
    this.classText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    this.classText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            JavaToWSDLWizardPage.this.className = JavaToWSDLWizardPage.this.classText.getText();
            validate();
        }
    });

    Button b = new Button(container, SWT.PUSH);
    b.setText("Browse...");
    b.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            openClassSelectionDialog();
        }

        @Override
        public void widgetSelected(SelectionEvent e) {
            openClassSelectionDialog();
        }
    });

    this.classText.setFocus();
    setControl(container);
}

From source file:com.ebmwebsourcing.petals.common.extensions.internal.wizards.WSDLtoJavaWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {

    Composite container = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    container.setLayout(layout);/*ww  w . j  ava  2  s  .co m*/
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    // WSDL field
    Label l = new Label(container, SWT.NONE);
    l.setText("WSDL URI:");
    l.setLayoutData(new GridData());

    final Text text = new Text(container, SWT.BORDER | SWT.SINGLE);
    text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    text.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            String uri = text.getText();
            if (uri.trim().length() == 0)
                return;

            try {
                WSDLtoJavaWizardPage.this.wsdlUri = UriAndUrlHelper.urlToUri(uri);

            } catch (Exception e1) {
                WSDLtoJavaWizardPage.this.wsdlUri = null;
            }

            validate();
        }
    });

    Composite buttons = new Composite(container, SWT.NONE);
    layout = new GridLayout(2, false);
    layout.marginHeight = layout.marginWidth = 0;
    buttons.setLayout(layout);

    Button b = new Button(buttons, SWT.PUSH);
    b.setText("Browse File System");
    b.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }

        @Override
        public void widgetSelected(SelectionEvent e) {

            FileDialog dlg = new FileDialog(text.getShell(), SWT.SINGLE);
            dlg.setFilterNames(new String[] { "WSDL (*.wsdl)" }); //$NON-NLS-1$
            dlg.setFilterExtensions(new String[] { "*.wsdl" }); //$NON-NLS-1$
            String path = dlg.open();

            if (path != null) {
                text.setText(new File(path).toURI().toString());
                text.setSelection(path.length());
                text.setFocus();
            }
        }
    });

    b = new Button(buttons, SWT.PUSH);
    b.setText("Browse Workspace...");
    b.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }

        @Override
        public void widgetSelected(SelectionEvent e) {

            WorkspaceExplorer dlg = new WorkspaceExplorer(getShell(), new String[] { "wsdl" });
            if (dlg.open() == Window.OK) {
                IResource res = dlg.getSelectedResource();
                text.setText(new File(res.getLocation().toOSString()).toURI().toString());
                text.setSelection(text.getText().length());
                text.setFocus();
            }
        }
    });

    // Container selection
    l = new Label(container, SWT.NONE);
    l.setText("Select the output location.");
    GridData layoutData = new GridData();
    layoutData.verticalIndent = 15;
    l.setLayoutData(layoutData);

    TreeViewer viewer = new TreeViewer(container, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
    layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.heightHint = 200;
    viewer.getTree().setLayoutData(layoutData);
    viewer.setLabelProvider(new WorkbenchLabelProvider());

    viewer.setContentProvider(new WorkbenchContentProvider() {
        @Override
        public Object[] getChildren(Object o) {

            if (o instanceof IContainer) {
                IResource[] members;
                try {
                    members = ((IContainer) o).members();
                } catch (Exception e) {
                    return new Object[0];
                }

                ArrayList<IResource> results = new ArrayList<IResource>();
                for (IResource member : members) {
                    if (member instanceof IContainer)
                        results.add(member);
                }

                return results.toArray();
            }

            return new Object[0];
        }
    });

    // Set page input
    IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
    viewer.setInput(root);
    if (this.outputContainer != null) {
        viewer.setSelection(new StructuredSelection(this.outputContainer), true);
        viewer.expandToLevel(this.outputContainer, 1);
    }

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {

            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            if (!s.isEmpty())
                WSDLtoJavaWizardPage.this.outputContainer = (IContainer) s.getFirstElement();
            else
                WSDLtoJavaWizardPage.this.outputContainer = null;
            validate();
        }
    });

    text.setFocus();
    setControl(container);
}

From source file:com.ebmwebsourcing.petals.common.internal.provisional.ui.WorkspaceExplorer.java

License:Open Source License

/**
 * Add an explorer for the workspace resources.
 * @param container//from w  w  w . ja  va 2s .  com
 */
private void addWorkspaceExplorer(Composite container) {

    int style = SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.HIDE_SELECTION;
    this.wkViewer = new TreeViewer(container, style);

    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.heightHint = 100;
    this.wkViewer.getTree().setLayoutData(layoutData);
    this.wkViewer.setLabelProvider(new WorkbenchLabelProvider());
    this.wkViewer.setContentProvider(new ITreeContentProvider() {

        /**
         * @param container
         * @return the list of sub-containers having resources with one of the filtered extension.
         * <p>
         * The result does not include binary folders from Java projects,
         * and skips resources to hide.
         * </p>
         */
        private Object[] getContainerElements(IContainer container) {
            IResource[] res = ResourceUtils.getDirectValidChildren(container, WorkspaceExplorer.this.extensions,
                    new ArrayList<IResource>());
            return res;
        }

        /*
         * (non-Javadoc)
         * @see org.eclipse.jface.viewers.ITreeContentProvider
         * #getChildren(java.lang.Object)
         */
        @Override
        public Object[] getChildren(Object o) {
            if (o instanceof IContainer)
                return getContainerElements((IContainer) o);
            return new Object[0];
        }

        /*
         * (non-Javadoc)
         * @see org.eclipse.jface.viewers.ITreeContentProvider
         * #hasChildren(java.lang.Object)
         */
        @Override
        public boolean hasChildren(Object element) {
            if (element instanceof IContainer)
                return getContainerElements((IContainer) element).length > 0;
            return false;
        }

        /*
         * (non-Javadoc)
         * @see org.eclipse.jface.viewers.ITreeContentProvider
         * #getParent(java.lang.Object)
         */
        @Override
        public Object getParent(Object element) {

            if (element instanceof IResource) {
                IContainer parent = ((IResource) element).getParent();
                if (parent instanceof IWorkspaceRoot)
                    return null;

                return parent;
            }

            return null;
        }

        /*
         * (non-Javadoc)
         * @see org.eclipse.jface.viewers.IStructuredContentProvider
         * #getElements(java.lang.Object)
         */
        @Override
        public Object[] getElements(Object inputElement) {

            if (inputElement instanceof IWorkspaceRoot)
                return ((IWorkspaceRoot) inputElement).getProjects();
            else if (inputElement instanceof String) {
                //               IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject((String) inputElement);
                //               if( p != null ) {
                //                  List<IProject> dependencies = JDTUtils.getJavaProjectDependencies( p );
                //                  return dependencies.toArray();
                //               }
            }

            return new Object[0];
        }

        /*
         * (non-Javadoc)
         * @see org.eclipse.jface.viewers.IContentProvider#dispose()
         */
        @Override
        public void dispose() {
            // nothing
        }

        /*
         * (non-Javadoc)
         * @see org.eclipse.jface.viewers.IContentProvider
         * #inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
         */
        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // nothing
        }
    });

    // Selection listener
    this.wkViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {

            if (event.getSelection().isEmpty())
                return;

            Button b = getButton(IDialogConstants.OK_ID);
            Object res = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (res instanceof IFile) {
                WorkspaceExplorer.this.selectedResource = (IFile) res;
                if (b != null)
                    b.setEnabled(true);
            } else {
                WorkspaceExplorer.this.selectedResource = null;
                if (b != null)
                    b.setEnabled(false);
            }
        }
    });

    // Double-clic means selection
    this.wkViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {

            if (event.getSelection().isEmpty())
                return;

            Button b = getButton(IDialogConstants.OK_ID);
            Object res = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (res instanceof IFile) {
                WorkspaceExplorer.this.selectedResource = (IFile) res;
                if (b != null)
                    b.setEnabled(true);
                close();
            }
        }
    });
}