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

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

Introduction

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

Prototype

ITableLabelProvider

Source Link

Usage

From source file:org.eclipse.team.svn.ui.wizard.checkoutas.MultipleCheckoutMethodSelectionPage.java

License:Open Source License

public Composite createControlImpl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);

    // GridLayout
    GridLayout layout = new GridLayout();
    composite.setLayout(layout);//from   w  w  w  .ja v  a 2  s  .com

    // GridData
    GridData data = new GridData(GridData.FILL_BOTH);
    composite.setLayoutData(data);

    Button findProjectsButton = new Button(composite, SWT.RADIO);
    data = new GridData(GridData.FILL_HORIZONTAL);
    findProjectsButton.setLayoutData(data);
    findProjectsButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            MultipleCheckoutMethodSelectionPage.this.checkoutType = MultipleCheckoutMethodSelectionPage.FIND_PROJECTS;
            MultipleCheckoutMethodSelectionPage.this.validateContent();
        }
    });
    findProjectsButton.setText(SVNUIMessages.MultipleCheckoutMethodSelectionPage_Find);
    findProjectsButton.setSelection(true);

    Button checkoutAsFolder = new Button(composite, SWT.RADIO);
    data = new GridData(GridData.FILL_HORIZONTAL);
    checkoutAsFolder.setLayoutData(data);
    checkoutAsFolder.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            MultipleCheckoutMethodSelectionPage.this.checkoutType = MultipleCheckoutMethodSelectionPage.CHECKOUT_AS_FOLDER;
            MultipleCheckoutMethodSelectionPage.this.validateContent();
        }
    });
    checkoutAsFolder.setText(SVNUIMessages.MultipleCheckoutMethodSelectionPage_Folders);

    Button simpleCheckoutButton = new Button(composite, SWT.RADIO);
    data = new GridData(GridData.FILL_HORIZONTAL);
    simpleCheckoutButton.setLayoutData(data);
    simpleCheckoutButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            MultipleCheckoutMethodSelectionPage.this.checkoutType = MultipleCheckoutMethodSelectionPage.CHECKOUT_AS_PROJECTS;
            MultipleCheckoutMethodSelectionPage.this.validateContent();
        }
    });
    simpleCheckoutButton.setText(SVNUIMessages.MultipleCheckoutMethodSelectionPage_Projects);

    data = new GridData(GridData.FILL_BOTH);

    Table table = new Table(composite,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER);
    TableLayout tLayout = new TableLayout();
    table.setLayout(tLayout);

    TableViewer tableViewer = new TableViewer(table);
    tableViewer.getTable().setLayoutData(data);

    int maxLength = FileUtility.getMaxStringLength(SVNUtility.asURLArray(this.selectedResources, false));
    this.initializeDialogUnits(composite);
    int width = this.convertWidthInCharsToPixels(maxLength + 12);

    TableColumn col = new TableColumn(table, SWT.NONE);
    col.setResizable(true);
    ColumnLayoutData cData = null;
    if (width > CheckoutAsWizard.SIZING_WIZARD_WIDTH) {
        cData = new ColumnPixelData(width, true);
    } else {
        cData = new ColumnWeightData(100, true);
    }
    tLayout.addColumnData(cData);

    tableViewer.setLabelProvider(new ITableLabelProvider() {
        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }

        public String getColumnText(Object element, int columnIndex) {
            IRepositoryResource resource = (IRepositoryResource) element;
            return resource.getUrl();
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void dispose() {
        }

        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        public void removeListener(ILabelProviderListener listener) {
        }
    });

    tableViewer.setContentProvider(new ArrayStructuredContentProvider());

    tableViewer.setInput(this.selectedResources);

    this.depthSelector = new DepthSelectionComposite(composite, SWT.NONE, false);
    data = new GridData(GridData.FILL_HORIZONTAL);
    this.depthSelector.setLayoutData(data);

    this.revisionComposite = new RevisionComposite(composite, this, false, new String[] {
            SVNUIMessages.RevisionComposite_Revision, SVNUIMessages.RevisionComposite_HeadRevision },
            SVNRevision.HEAD, false);
    data = new GridData(GridData.FILL_HORIZONTAL);
    this.revisionComposite.setLayoutData(data);
    this.revisionComposite.setSelectedResource(this.selectedResources[0].getRoot());

    //      Setting context help
    PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
            "org.eclipse.team.svn.help.multiSelectionContext"); //$NON-NLS-1$

    return composite;
}

From source file:org.eclipse.team.svn.ui.wizard.shareproject.AlreadyConnectedPage.java

License:Open Source License

public Composite createControlImpl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    composite.setLayout(layout);//from   w w  w .  j a va  2 s  .  c o  m
    GridData data = new GridData();
    data.verticalAlignment = GridData.FILL;
    data.horizontalAlignment = GridData.FILL;
    composite.setLayoutData(data);

    this.initializeDialogUnits(parent);

    Label description = new Label(composite, SWT.WRAP);
    description.setLayoutData(this.makeGridData());
    description.setText(SVNUIMessages.AlreadyConnectedPage_ProjectURL);

    this.urlText = new Text(composite, SWT.SINGLE | SWT.BORDER);
    data = new GridData(GridData.FILL_HORIZONTAL);
    data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
    this.urlText.setLayoutData(data);
    this.urlText.setEditable(false);

    description = new Label(composite, SWT.WRAP);
    description.setLayoutData(this.makeGridData());
    description.setText(SVNUIMessages.AlreadyConnectedPage_RepositoryLocation);

    Table table = new Table(composite,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    table.setLayoutData(new GridData(GridData.FILL_BOTH));
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    TableLayout tLayout = new TableLayout();
    tLayout.addColumnData(new ColumnWeightData(30, true));
    tLayout.addColumnData(new ColumnWeightData(70, true));
    table.setLayout(tLayout);

    this.repositoryRootsView = new TableViewer(table);
    this.repositoryRootsView.setContentProvider(new ArrayStructuredContentProvider());
    final ITableLabelProvider labelProvider = new ITableLabelProvider() {
        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }

        public String getColumnText(Object element, int columnIndex) {
            IRepositoryRoot root = (IRepositoryRoot) element;
            if (columnIndex == 0) {
                return root.getRepositoryLocation().getLabel();
            }
            return root.getRepositoryLocation().getUrl();
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void dispose() {
        }

        public boolean isLabelProperty(Object element, String property) {
            return true;
        }

        public void removeListener(ILabelProviderListener listener) {
        }
    };
    this.repositoryRootsView.setLabelProvider(labelProvider);

    ColumnedViewerComparator comparator = new ColumnedViewerComparator(this.repositoryRootsView) {
        public int compareImpl(Viewer viewer, Object row1, Object row2) {
            String val1 = labelProvider.getColumnText(row1, this.column);
            String val2 = labelProvider.getColumnText(row2, this.column);
            return ColumnedViewerComparator.compare(val1, val2);
        }
    };
    this.repositoryRootsView.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) AlreadyConnectedPage.this.repositoryRootsView
                    .getSelection();
            AlreadyConnectedPage.this.selectedRoot = (IRepositoryRoot) selection.getFirstElement();
            AlreadyConnectedPage.this.setPageComplete(true);
        }
    });

    TableColumn col = new TableColumn(table, SWT.LEFT);
    col.setResizable(true);
    col.setText(SVNUIMessages.AlreadyConnectedPage_LocationLabel);
    col.addSelectionListener(comparator);

    col = new TableColumn(table, SWT.LEFT);
    col.setResizable(true);
    col.setText(SVNUIMessages.AlreadyConnectedPage_URL);
    col.addSelectionListener(comparator);

    this.repositoryRootsView.getTable().setSortDirection(SWT.UP);
    this.repositoryRootsView.getTable().setSortColumn(this.repositoryRootsView.getTable().getColumn(0));

    Composite btnComposite = new Composite(composite, SWT.NONE);
    layout = new GridLayout();
    layout.marginWidth = 0;
    btnComposite.setLayout(layout);
    data = new GridData();
    data.verticalAlignment = GridData.FILL;
    data.horizontalAlignment = GridData.FILL;
    btnComposite.setLayoutData(data);

    description = new Label(btnComposite, SWT.WRAP);
    data = new GridData(GridData.FILL_HORIZONTAL);
    data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
    data.heightHint = this.convertHeightInCharsToPixels(2);
    description.setLayoutData(data);
    description.setText(SVNUIMessages.AlreadyConnectedPage_Hint);

    this.useProjectSettingsButton = new Button(btnComposite, SWT.RADIO);
    this.useProjectSettingsButton.setLayoutData(this.makeGridData());
    this.useProjectSettingsButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button button = (Button) e.widget;
            boolean selectEnabled = AlreadyConnectedPage.this.useProjectSettings = button.getSelection();
            AlreadyConnectedPage.this.repositoryRootsView.getTable().setEnabled(selectEnabled);
            AlreadyConnectedPage.this.setPageComplete(true);
        }
    });
    this.useProjectSettingsButton.setText(SVNUIMessages.AlreadyConnectedPage_UseProjectSettings);

    this.createProjectLocationButton = new Button(btnComposite, SWT.RADIO);
    this.createProjectLocationButton.setLayoutData(this.makeGridData());
    this.createProjectLocationButton.setText(SVNUIMessages.AlreadyConnectedPage_CreateLocation);
    this.createProjectLocationButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button button = (Button) e.widget;
            AlreadyConnectedPage.this.createUsingProjectSettings = button.getSelection();
            AlreadyConnectedPage.this.repositoryRootsView.getTable().setEnabled(false);
            AlreadyConnectedPage.this.setPageComplete(true);
        }
    });

    this.reconnectButton = new Button(btnComposite, SWT.RADIO);
    this.reconnectButton.setLayoutData(this.makeGridData());
    this.reconnectButton.setText(SVNUIMessages.AlreadyConnectedPage_ReconnectToAnother);

    this.initControls();

    //      Setting context help
    PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
            "org.eclipse.team.svn.help.alreadyConnectedContext"); //$NON-NLS-1$

    return composite;
}

From source file:org.eclipse.team.svn.ui.wizard.shareproject.SelectProjectsGroupPage.java

License:Open Source License

protected Composite createControlImpl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;//from   www.  j  a  v  a  2  s  . co m
    composite.setLayout(layout);
    GridData data = new GridData(GridData.FILL_BOTH);
    composite.setLayoutData(data);

    this.initializeDialogUnits(parent);

    Label label = new Label(composite, SWT.WRAP);
    data = new GridData(GridData.FILL_HORIZONTAL);
    data.horizontalSpan = 2;
    data.heightHint = this.convertHeightInCharsToPixels(3);
    data.widthHint = 420;
    label.setLayoutData(data);
    label.setText(SVNUIMessages.SelectProjectsGroupPage_Hint);

    Button shareProjectsButton = new Button(composite, SWT.RADIO);
    data = new GridData();
    data.horizontalSpan = 2;
    shareProjectsButton.setLayoutData(data);
    shareProjectsButton.setText(SVNUIMessages.SelectProjectsGroupPage_ShareNew);
    boolean newEnabled = this.projectGroups.get(null) != null;
    shareProjectsButton.setEnabled(newEnabled);
    shareProjectsButton.setSelection(newEnabled);
    shareProjectsButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            if (((Button) e.widget).getSelection()) {
                SelectProjectsGroupPage.this.groupsCombo.setEnabled(false);
                SelectProjectsGroupPage.this.analysisDepthCombo.setEnabled(false);
                SelectProjectsGroupPage.this.selectedGroup = null;
            }
            SelectProjectsGroupPage.this.viewer.setInput(SelectProjectsGroupPage.this.projectGroups);
        }
    });

    Button reconnectProjectsButton = new Button(composite, SWT.RADIO);
    data = new GridData();
    data.horizontalSpan = 2;
    reconnectProjectsButton.setLayoutData(data);
    reconnectProjectsButton.setEnabled(this.projectGroups.size() > 1 || this.projectGroups.get(null) == null);
    reconnectProjectsButton.setText(SVNUIMessages.SelectProjectsGroupPage_Reconnect);
    reconnectProjectsButton.setSelection(!newEnabled);
    reconnectProjectsButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            if (((Button) e.widget).getSelection()) {
                SelectProjectsGroupPage.this.groupsCombo.setEnabled(true);
                SelectProjectsGroupPage.this.analysisDepthCombo.setEnabled(true);
                SelectProjectsGroupPage.this.selectedGroup = SelectProjectsGroupPage.this.groupsCombo
                        .getItem(SelectProjectsGroupPage.this.groupsCombo.getSelectionIndex());
            }
            SelectProjectsGroupPage.this.viewer.setInput(SelectProjectsGroupPage.this.projectGroups);
        }
    });

    this.analysisDepthCombo = new Combo(composite, SWT.BORDER | SWT.READ_ONLY);
    data = new GridData();
    this.analysisDepthCombo.setLayoutData(data);
    this.analysisDepthCombo.setVisibleItemCount(10);
    this.analysisDepthCombo.setEnabled(!newEnabled);
    this.analysisDepthCombo.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            SelectProjectsGroupPage.this.analysisDepth = ((Combo) e.widget).getSelectionIndex() + 1;
            SelectProjectsGroupPage.this.performAnalysis();
            SelectProjectsGroupPage.this.setGroupsComboItems();
            SelectProjectsGroupPage.this.viewer.setInput(SelectProjectsGroupPage.this.projectGroups);
        }
    });
    String[] allItems = new String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
    String[] items = allItems;
    if (this.maxURLLength < 10) {
        items = new String[this.maxURLLength];
        System.arraycopy(allItems, 0, items, 0, this.maxURLLength);
    }
    this.analysisDepthCombo.setItems(items);
    this.analysisDepthCombo.select(1);

    this.groupsCombo = new Combo(composite, SWT.BORDER | SWT.READ_ONLY);
    data = new GridData(GridData.FILL_HORIZONTAL);
    this.groupsCombo.setLayoutData(data);
    this.setGroupsComboItems();
    this.groupsCombo.setEnabled(!newEnabled);
    this.groupsCombo.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Combo c = (Combo) e.widget;
            SelectProjectsGroupPage.this.selectedGroup = c.getItem(c.getSelectionIndex());
            SelectProjectsGroupPage.this.viewer.setInput(SelectProjectsGroupPage.this.projectGroups);
        }
    });

    label = new Label(composite, SWT.NONE);
    data = new GridData();
    data.horizontalSpan = 2;
    label.setLayoutData(data);
    label.setText(SVNUIMessages.SelectProjectsGroupPage_ProjectsList);

    this.viewer = new TableViewer(composite,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    Table table = this.viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    data = new GridData(GridData.FILL_BOTH);
    data.widthHint = 420;
    data.horizontalSpan = 2;
    table.setLayoutData(data);

    this.viewer.setContentProvider(new IStructuredContentProvider() {
        public Object[] getElements(Object inputElement) {
            List group = SelectProjectsGroupPage.this
                    .getProjectsGroup(SelectProjectsGroupPage.this.selectedGroup);
            return group.toArray();
        }

        public void dispose() {
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }
    });
    this.viewer.setLabelProvider(new ITableLabelProvider() {
        public void removeListener(ILabelProviderListener listener) {
        }

        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        public void dispose() {
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }

        public String getColumnText(Object element, int columnIndex) {
            return ((IProject) element).getName();
        }
    });

    ColumnedViewerComparator comparator = new ColumnedViewerComparator(this.viewer) {
        public int compareImpl(Viewer viewer, Object row1, Object row2) {
            return ColumnedViewerComparator.compare(row1.toString(), row2.toString());
        }
    };

    TableColumn col = new TableColumn(table, SWT.NONE);
    col.setResizable(false);
    col.setText(SVNUIMessages.SelectProjectsGroupPage_ProjectName);
    col.addSelectionListener(comparator);
    TableLayout tLayout = new TableLayout();
    tLayout.addColumnData(new ColumnWeightData(100));
    table.setLayout(tLayout);

    this.viewer.getTable().setSortDirection(SWT.UP);
    this.viewer.getTable().setSortColumn(this.viewer.getTable().getColumn(0));

    this.selectedGroup = this.projectGroups.get(null) != null ? null
            : (String) this.projectGroups.keySet().iterator().next();
    this.viewer.setInput(this.projectGroups);

    //      Setting context help
    PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
            "org.eclipse.team.svn.help.projectGroupContext"); //$NON-NLS-1$

    return composite;
}

From source file:org.eclipse.team.svn.ui.wizard.shareproject.SelectRepositoryLocationPage.java

License:Open Source License

public static TableViewer createRepositoriesListTable(Composite parent, IRepositoryLocation[] repositories) {
    Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.heightHint = 200;/*  w w  w.j a v  a  2s .c  o m*/
    table.setLayoutData(data);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableLayout tLayout = new TableLayout();
    tLayout.addColumnData(new ColumnWeightData(30, true));
    tLayout.addColumnData(new ColumnWeightData(70, true));
    table.setLayout(tLayout);

    TableViewer repositoriesView = new TableViewer(table);

    ColumnedViewerComparator comparator = new ColumnedViewerComparator(repositoriesView) {
        public int compareImpl(Viewer viewer, Object row1, Object row2) {
            IRepositoryLocation location1 = (IRepositoryLocation) row1;
            IRepositoryLocation location2 = (IRepositoryLocation) row2;
            if (this.column == 0) {
                return ColumnedViewerComparator.compare(location1.getLabel(), location2.getLabel());
            }
            return ColumnedViewerComparator.compare(location1.getUrl(), location2.getUrl());
        }
    };

    TableColumn col = new TableColumn(table, SWT.LEFT);
    col.setResizable(true);
    col.setText("Label");
    col.addSelectionListener(comparator);

    col = new TableColumn(table, SWT.LEFT);
    col.setResizable(true);
    col.setText("URL");
    col.addSelectionListener(comparator);

    repositoriesView.setComparator(comparator);
    repositoriesView.getTable().setSortDirection(SWT.UP);
    repositoriesView.getTable().setSortColumn(repositoriesView.getTable().getColumn(0));

    repositoriesView.setContentProvider(new ArrayStructuredContentProvider());
    repositoriesView.setLabelProvider(new ITableLabelProvider() {
        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }

        public String getColumnText(Object element, int columnIndex) {
            IRepositoryLocation location = (IRepositoryLocation) element;
            if (columnIndex == 0) {
                return location.getLabel();
            }
            return location.getUrlAsIs();
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void dispose() {
        }

        public boolean isLabelProperty(Object element, String property) {
            return true;
        }

        public void removeListener(ILabelProviderListener listener) {
        }
    });

    repositoriesView.setInput(repositories);
    repositoriesView.getTable().select(0);

    return repositoriesView;
}

From source file:org.eclipse.tm.terminal.view.ui.preferences.PreferencePage.java

License:Open Source License

@Override
protected Control createContents(final Composite parent) {
    final GC gc = new GC(parent);
    gc.setFont(JFaceResources.getDialogFont());

    Composite panel = new Composite(parent, SWT.NONE);
    panel.setLayout(new GridLayout());
    GridData layoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
    panel.setLayoutData(layoutData);/*from www. j  av  a  2s.  c o m*/

    Label label = new Label(panel, SWT.HORIZONTAL);
    label.setText(Messages.PreferencePage_label);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    if (!Platform.OS_WIN32.equals(Platform.getOS())) {
        Group group = new Group(panel, SWT.NONE);
        group.setText(Messages.PreferencePage_command_label);
        group.setLayout(new GridLayout(2, false));
        group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

        command = new Text(group, SWT.SINGLE | SWT.BORDER);
        command.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
        command.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent e) {
                boolean valid = true;
                String message = null;

                String text = command.getText();
                if (text != null && !"".equals(text.trim())) { //$NON-NLS-1$
                    IPath p = new Path(text.trim());
                    valid = p.toFile().isFile() && p.toFile().canRead() && p.toFile().canExecute();
                    if (!valid)
                        message = Messages.PreferencePage_command_invalid;
                }

                setValid(valid);
                setErrorMessage(message);
            }
        });

        commandBrowseButton = new Button(group, SWT.PUSH);
        commandBrowseButton.setText(Messages.PreferencePage_command_button_browse);
        layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
        layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 14);
        commandBrowseButton.setLayoutData(layoutData);
        commandBrowseButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                FileDialog dialog = new FileDialog(parent.getShell(), SWT.OPEN);

                String text = command.getText();
                if (text != null && !"".equals(text.trim())) { //$NON-NLS-1$
                    IPath p = new Path(text);

                    if (p.toFile().isFile() || !p.toFile().exists()) {
                        dialog.setFilterPath(p.removeLastSegments(1).toOSString());
                        dialog.setFileName(p.lastSegment());
                    } else if (p.toFile().isDirectory()) {
                        dialog.setFilterPath(p.toOSString());
                    }
                }

                String selected = dialog.open();
                if (selected != null) {
                    IPath sp = new Path(selected);
                    command.setText(sp.toOSString());
                }
            }
        });

        String cmd = UIPlugin.getScopedPreferences()
                .getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX);
        if (cmd != null && !"".equals(cmd)) { //$NON-NLS-1$
            command.setText(new Path(cmd).toOSString());
        }

        Composite argsPanel = new Composite(group, SWT.NONE);
        GridLayout layout = new GridLayout(2, false);
        layout.marginHeight = 0;
        layout.marginWidth = 0;
        argsPanel.setLayout(layout);
        layoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
        layoutData.horizontalSpan = 2;
        argsPanel.setLayoutData(layoutData);

        label = new Label(argsPanel, SWT.NONE);
        label.setText(Messages.PreferencePage_command_arguments_label);

        arguments = new Text(argsPanel, SWT.SINGLE | SWT.BORDER);
        arguments.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

        String args = UIPlugin.getScopedPreferences()
                .getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX_ARGS);
        if (args != null && !"".equals(args)) { //$NON-NLS-1$
            arguments.setText(args);
        }

        NoteCompositeHelper.createNoteComposite(group.getFont(), group,
                Messages.PreferencePage_command_note_label, Messages.PreferencePage_command_note_text);
    }

    Group group = new Group(panel, SWT.NONE);
    group.setText(Messages.PreferencePage_workingDir_label);
    group.setLayout(new GridLayout(hasVariablesButton ? 3 : 2, false));
    group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

    workingDir = new Combo(group, SWT.DROP_DOWN);
    Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
    if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
        workingDir.setItems(new String[] { Messages.PreferencePage_workingDir_userhome_label,
                Messages.PreferencePage_workingDir_eclipsehome_label,
                Messages.PreferencePage_workingDir_eclipsews_label });
    } else {
        workingDir.setItems(new String[] { Messages.PreferencePage_workingDir_userhome_label,
                Messages.PreferencePage_workingDir_eclipsehome_label });
    }
    workingDir.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    workingDir.select(0);
    workingDir.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            boolean valid = true;
            String message = null;

            String text = workingDir.getText();
            if (text != null && !"".equals(text.trim()) //$NON-NLS-1$
                    && !Messages.PreferencePage_workingDir_userhome_label.equals(text)
                    && !Messages.PreferencePage_workingDir_eclipsehome_label.equals(text)
                    && !Messages.PreferencePage_workingDir_eclipsews_label.equals(text)) {
                try {
                    // Resolve possible dynamic variables
                    IStringVariableManager vm = VariablesPlugin.getDefault().getStringVariableManager();
                    String resolved = vm.performStringSubstitution(text.trim());

                    IPath p = new Path(resolved);
                    valid = p.toFile().canRead() && p.toFile().isDirectory();
                    if (!valid)
                        message = Messages.PreferencePage_workingDir_invalid;
                } catch (CoreException ex) {
                    valid = false;
                    message = ex.getLocalizedMessage();
                }
            }

            setValid(valid);
            setErrorMessage(message);
        }
    });

    browseButton = new Button(group, SWT.PUSH);
    browseButton.setText(Messages.PreferencePage_workingDir_button_browse);
    layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
    layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 14);
    browseButton.setLayoutData(layoutData);
    browseButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IPath uh = null;
            IPath eh = null;
            IPath ew = null;

            // HOME
            String home = System.getProperty("user.home"); //$NON-NLS-1$
            if (home != null && !"".equals(home)) //$NON-NLS-1$
                uh = new Path(home);

            // ECLIPSE_HOME
            String eclipseHomeLocation = System.getProperty("eclipse.home.location"); //$NON-NLS-1$
            if (eclipseHomeLocation != null) {
                try {
                    URI uri = URIUtil.fromString(eclipseHomeLocation);
                    File f = URIUtil.toFile(uri);
                    eh = new Path(f.getAbsolutePath());
                } catch (URISyntaxException ex) {
                    /* ignored on purpose */ }
            }

            // ECLIPSE_WORKSPACE
            Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
            if (bundle != null && bundle.getState() != Bundle.UNINSTALLED
                    && bundle.getState() != Bundle.STOPPING) {
                if (org.eclipse.core.resources.ResourcesPlugin.getWorkspace() != null
                        && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot() != null
                        && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot()
                                .getLocation() != null) {
                    ew = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation();
                }
            }

            DirectoryDialog dialog = new DirectoryDialog(parent.getShell(), SWT.OPEN);

            // Determine the filter path
            String text = workingDir.getText();
            if (Messages.PreferencePage_workingDir_userhome_label.equals(text)) {
                dialog.setFilterPath(uh.toOSString());
            } else if (Messages.PreferencePage_workingDir_eclipsehome_label.equals(text)) {
                dialog.setFilterPath(eh.toOSString());
            } else if (Messages.PreferencePage_workingDir_eclipsews_label.equals(text)) {
                dialog.setFilterPath(ew.toOSString());
            } else if (text != null && !"".equals(text.trim())) { //$NON-NLS-1$
                try {
                    // Resolve possible dynamic variables
                    IStringVariableManager vm = VariablesPlugin.getDefault().getStringVariableManager();
                    String resolved = vm.performStringSubstitution(text.trim());
                    dialog.setFilterPath(resolved);
                } catch (CoreException ex) {
                    if (Platform.inDebugMode()) {
                        UIPlugin.getDefault().getLog().log(ex.getStatus());
                    }
                }
            }

            String selected = dialog.open();
            if (selected != null) {
                IPath sp = new Path(selected);

                if (uh.equals(sp)) {
                    workingDir.select(0);
                } else if (eh.equals(sp)) {
                    workingDir.select(1);
                } else if (ew.equals(sp)) {
                    workingDir.select(2);
                } else {
                    workingDir.setText(sp.toOSString());
                }
            }
        }
    });

    if (hasVariablesButton) {
        variablesButton = new Button(group, SWT.PUSH);
        variablesButton.setText(Messages.PreferencePage_workingDir_button_variables);
        layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
        layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 14);
        variablesButton.setLayoutData(layoutData);
        variablesButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                org.eclipse.debug.ui.StringVariableSelectionDialog dialog = new org.eclipse.debug.ui.StringVariableSelectionDialog(
                        getShell());
                dialog.open();
                String expression = dialog.getVariableExpression();
                if (expression != null) {
                    if ("${eclipse_home}".equals(expression)) { //$NON-NLS-1$
                        workingDir.select(1);
                    } else if ("${workspace_loc}".equals(expression)) { //$NON-NLS-1$
                        workingDir.select(2);
                    } else {
                        workingDir.setText(expression);
                    }
                }
            }
        });
    }

    String initialCwd = UIPlugin.getScopedPreferences()
            .getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD);
    if (initialCwd == null || IPreferenceKeys.PREF_INITIAL_CWD_USER_HOME.equals(initialCwd)
            || "".equals(initialCwd.trim())) { //$NON-NLS-1$
        workingDir.select(0);
    } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_HOME.equals(initialCwd)
            || "${eclipse_home}".equals(initialCwd)) { //$NON-NLS-1$
        workingDir.select(1);
    } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_WS.equals(initialCwd)
            || "${workspace_loc}".equals(initialCwd)) { //$NON-NLS-1$
        workingDir.select(2);
    } else {
        workingDir.setText(new Path(initialCwd).toOSString());
    }

    NoteCompositeHelper.createNoteComposite(group.getFont(), group,
            Messages.PreferencePage_workingDir_note_label, Messages.PreferencePage_workingDir_note_text);

    group = new Group(panel, SWT.NONE);
    group.setText(Messages.PreferencePage_executables_label);
    group.setLayout(new GridLayout(2, false));
    group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

    viewer = new TableViewer(group, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);

    Table table = viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableColumn column = new TableColumn(table, SWT.LEFT);
    column.setText(Messages.PreferencePage_executables_column_name_label);
    column = new TableColumn(table, SWT.LEFT);
    column.setText(Messages.PreferencePage_executables_column_path_label);

    ColumnViewerToolTipSupport.enableFor(viewer);

    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(35));
    tableLayout.addColumnData(new ColumnWeightData(65));
    table.setLayout(tableLayout);

    layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.heightHint = Dialog.convertHeightInCharsToPixels(gc.getFontMetrics(), 10);
    table.setLayoutData(layoutData);

    Composite buttonsPanel = new Composite(group, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    buttonsPanel.setLayout(layout);
    buttonsPanel.setLayoutData(new GridData(SWT.LEAD, SWT.BEGINNING, false, false));

    addButton = new Button(buttonsPanel, SWT.PUSH);
    addButton.setText(Messages.PreferencePage_executables_button_add_label);
    layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
    layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 10);
    addButton.setLayoutData(layoutData);
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            ExternalExecutablesDialog dialog = new ExternalExecutablesDialog(PreferencePage.this.getShell(),
                    false);
            if (dialog.open() == Window.OK) {
                // Get the executable properties and add it to the the list
                Map<String, String> executableData = dialog.getExecutableData();
                if (executableData != null && !executables.contains(executableData)) {
                    executables.add(executableData);
                    viewer.refresh();
                }
            }
        }
    });

    editButton = new Button(buttonsPanel, SWT.PUSH);
    editButton.setText(Messages.PreferencePage_executables_button_edit_label);
    layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
    layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 10);
    editButton.setLayoutData(layoutData);
    editButton.addSelectionListener(new SelectionAdapter() {
        @SuppressWarnings("unchecked")
        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection s = viewer.getSelection();
            if (s instanceof IStructuredSelection && !s.isEmpty()) {
                Object element = ((IStructuredSelection) s).getFirstElement();
                if (element instanceof Map) {
                    final Map<String, String> m = (Map<String, String>) element;
                    ExternalExecutablesDialog dialog = new ExternalExecutablesDialog(
                            PreferencePage.this.getShell(), true);
                    dialog.setExecutableData(m);
                    if (dialog.open() == Window.OK) {
                        Map<String, String> executableData = dialog.getExecutableData();
                        if (executableData != null) {
                            m.clear();
                            m.putAll(executableData);
                            viewer.refresh();
                        }
                    }
                }
            }
        }
    });

    removeButton = new Button(buttonsPanel, SWT.PUSH);
    removeButton.setText(Messages.PreferencePage_executables_button_remove_label);
    layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
    layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 10);
    removeButton.setLayoutData(layoutData);
    removeButton.addSelectionListener(new SelectionAdapter() {
        @SuppressWarnings("unchecked")
        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection s = viewer.getSelection();
            if (s instanceof IStructuredSelection && !s.isEmpty()) {
                Iterator<?> iterator = ((IStructuredSelection) s).iterator();
                while (iterator.hasNext()) {
                    Object element = iterator.next();
                    if (element instanceof Map) {
                        Map<String, Object> m = (Map<String, Object>) element;
                        executables.remove(m);
                    }
                    viewer.refresh();
                }
            }
        }
    });

    viewer.setContentProvider(new IStructuredContentProvider() {
        @Override
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof List && !((List<?>) inputElement).isEmpty()) {
                return ((List<?>) inputElement).toArray();
            }
            return NO_ELEMENTS;
        }

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

        @Override
        public void dispose() {
        }
    });

    viewer.setLabelProvider(new ITableLabelProvider() {
        @SuppressWarnings("unchecked")
        @Override
        public String getColumnText(Object element, int columnIndex) {
            if (element instanceof Map) {
                Map<String, Object> m = (Map<String, Object>) element;

                switch (columnIndex) {
                case 0:
                    return (String) m.get(IExternalExecutablesProperties.PROP_NAME);
                case 1:
                    return (String) m.get(IExternalExecutablesProperties.PROP_PATH);
                }
            }
            return null;
        }

        @SuppressWarnings("unchecked")
        @Override
        public Image getColumnImage(Object element, int columnIndex) {
            Image i = null;

            if (element instanceof Map) {
                switch (columnIndex) {
                case 0:
                    Map<String, Object> m = (Map<String, Object>) element;
                    String icon = (String) m.get(IExternalExecutablesProperties.PROP_ICON);
                    if (icon != null) {
                        i = images.get(icon);
                        if (i == null) {
                            ImageData id = ExternalExecutablesManager.loadImage(icon);
                            if (id != null) {
                                ImageDescriptor d = ImageDescriptor.createFromImageData(id);
                                if (d != null)
                                    i = d.createImage();
                                if (i != null)
                                    images.put(icon, i);
                            }
                        }
                    }
                    break;
                case 1:
                    break;
                }
            }

            return i;
        }

        @Override
        public void removeListener(ILabelProviderListener listener) {
        }

        @Override
        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        @Override
        public void dispose() {
        }

        @Override
        public void addListener(ILabelProviderListener listener) {
        }
    });

    List<Map<String, String>> l = ExternalExecutablesManager.load();
    if (l != null)
        executables.addAll(l);

    viewer.setInput(executables);

    viewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    });

    updateButtons();

    gc.dispose();

    return panel;
}

From source file:org.eclipse.ui.ide.markers.compatibility.internal.QuickFixPage.java

License:Open Source License

/**
 * Create the table that shows the markers.
 * //from w  w w . java  2  s. c  om
 * @param control
 */
private void createMarkerTable(Composite control) {
    markersTable = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.V_SCROLL | SWT.SINGLE);

    createTableColumns();

    markersTable.setContentProvider(new IStructuredContentProvider() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IContentProvider#dispose()
         */
        public void dispose() {

        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
         */
        public Object[] getElements(Object inputElement) {
            IMarkerResolution selected = getSelectedResolution();
            if (selected == null) {
                return new Object[0];
            }

            if (resolutions.containsKey(selected)) {
                return ((Collection) resolutions.get(selected)).toArray();
            }
            return MarkerSupportInternalUtilities.EMPTY_MARKER_ARRAY;
        }

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

        }
    });

    markersTable.setLabelProvider(new ITableLabelProvider() {

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
         *      int)
         */
        public Image getColumnImage(Object element, int columnIndex) {
            if (columnIndex == 0)
                return Util.getImage(((IMarker) element).getAttribute(IMarker.SEVERITY, -1));
            return null;
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
         *      int)
         */
        public String getColumnText(Object element, int columnIndex) {
            if (columnIndex == 0)
                return Util.getResourceName((IMarker) element);
            int line = ((IMarker) element).getAttribute(IMarker.LINE_NUMBER, -1);
            if (line < 0) {
                return MarkerMessages.Unknown;
            }
            return NLS.bind(MarkerMessages.label_lineNumber, Integer.toString(line));
        }

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

        }

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

        }

        /*
         * (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) {
            // do nothing

        }
    });

    markersTable.addCheckStateListener(new ICheckStateListener() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
         */
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked() == true) {
                setPageComplete(true);
            } else {
                setPageComplete(markersTable.getCheckedElements().length > 0);
            }

        }
    });

    markersTable.addSelectionChangedListener(new ISelectionChangedListener() {
        /*
        * (non-Javadoc)
        * 
        * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
        */
        public void selectionChanged(SelectionChangedEvent event) {

            if (event.getSelection().isEmpty())
                return;
            IMarker marker = (IMarker) ((IStructuredSelection) event.getSelection()).getFirstElement();
            ExtendedMarkersView.openMarkerInEditor(marker, site.getPage());

        }
    });
    markersTable.setInput(this);
}

From source file:org.eclipse.ui.internal.statushandlers.StatusDialog.java

License:Open Source License

private void initLabelProvider() {
    ITableLabelProvider provider = new ITableLabelProvider() {
        Map imageTable = new HashMap();

        /*//from ww  w .  j a  va2 s  .co  m
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
         */
        public void addListener(ILabelProviderListener listener) {
            // Do nothing
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
         */
        public void dispose() {
            if (!imageTable.isEmpty()) {
                for (Iterator iter = imageTable.values().iterator(); iter.hasNext();) {
                    Image image = (Image) iter.next();
                    //                  image.dispose();
                }
            }
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
         *      int)
         */
        public Image getColumnImage(Object element, int columnIndex) {
            if (element != null) {
                StatusAdapter statusAdapter = ((StatusInfo) element).getStatus();
                Job job = (Job) (statusAdapter.getAdapter(Job.class));
                if (job != null) {
                    return getIcon(job);
                }
            }
            return null;
        }

        /*
         * Get the icon for the job. Code copied from NewProgressViewer
         */
        private Image getIcon(Job job) {
            //            if (job != null) {
            //
            //               Object property = job
            //                     .getProperty(IProgressConstants.ICON_PROPERTY);
            //
            //               // If we already have an image cached, return it
            //               Image im = (Image) imageTable.get(property);
            //               if (im != null) {
            //                  return im;
            //               }
            //
            //               // Create an image from the job's icon property or family
            //               Display display = getShell().getDisplay();
            //               if (property instanceof ImageDescriptor) {
            //                  im = ((ImageDescriptor) property).createImage(display);
            //                  imageTable.put(property, im); // Cache for disposal
            //               } else if (property instanceof URL) {
            //                  im = ImageDescriptor.createFromURL((URL) property)
            //                        .createImage(display);
            //                  imageTable.put(property, im); // Cache for disposal
            //               } else {
            //                  im = ProgressManager.getInstance().getIconFor(job);
            //                  // No need to cache since the progress manager will
            //               }
            //               return im;
            //            }
            return null;
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
         *      int)
         */
        public String getColumnText(Object element, int columnIndex) {
            return ((StatusInfo) element).getDisplayString();
        }

        /*
         * (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) {
            // Do nothing
        }
    };
    statusListViewer.setLabelProvider(provider);
}

From source file:org.eclipse.ui.internal.views.markers.QuickFixPage.java

License:Open Source License

/**
 * Create the table that shows the markers.
 * /*ww  w .ja v a 2  s.com*/
 * @param control
 */
private void createMarkerTable(Composite control) {
    markersTable = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.V_SCROLL | SWT.SINGLE);

    createTableColumns();

    markersTable.setContentProvider(new IStructuredContentProvider() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IContentProvider#dispose()
         */
        public void dispose() {

        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
         */
        public Object[] getElements(Object inputElement) {
            IMarkerResolution selected = getSelectedResolution();
            if (selected == null) {
                return new Object[0];
            }

            if (resolutions.containsKey(selected)) {
                return ((Collection) resolutions.get(selected)).toArray();
            }
            return MarkerSupportInternalUtilities.EMPTY_MARKER_ARRAY;
        }

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

        }
    });

    markersTable.setLabelProvider(new ITableLabelProvider() {

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
         *      int)
         */
        public Image getColumnImage(Object element, int columnIndex) {
            if (columnIndex == 0)
                return Util.getImage(((IMarker) element).getAttribute(IMarker.SEVERITY, -1));
            return null;
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
         *      int)
         */
        public String getColumnText(Object element, int columnIndex) {
            IMarker marker = (IMarker) element;
            if (columnIndex == 0)
                return Util.getResourceName(marker);

            // Is the location override set?
            String locationString = marker.getAttribute(IMarker.LOCATION,
                    MarkerSupportInternalUtilities.EMPTY_STRING);
            if (locationString.length() > 0) {
                return locationString;
            }

            // No override so use line number
            int lineNumber = marker.getAttribute(IMarker.LINE_NUMBER, -1);
            String lineNumberString = null;
            if (lineNumber < 0)
                lineNumberString = MarkerMessages.Unknown;
            else
                lineNumberString = NLS.bind(MarkerMessages.label_lineNumber, Integer.toString(lineNumber));

            return lineNumberString;
        }

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

        }

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

        }

        /*
         * (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) {
            // do nothing

        }
    });

    markersTable.addCheckStateListener(new ICheckStateListener() {
        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
         */
        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getChecked() == true) {
                setPageComplete(true);
            } else {
                setPageComplete(markersTable.getCheckedElements().length > 0);
            }

        }
    });

    new OpenAndLinkWithEditorHelper(markersTable) {

        {
            setLinkWithEditor(false);
        }

        protected void activate(ISelection selection) {
            open(selection, true);
        }

        /** Not supported*/
        protected void linkToEditor(ISelection selection) {
        }

        protected void open(ISelection selection, boolean activate) {
            if (selection.isEmpty())
                return;
            IMarker marker = (IMarker) ((IStructuredSelection) selection).getFirstElement();
            if (marker != null && marker.getResource() instanceof IFile) {
                try {
                    IDE.openEditor(site.getPage(), marker, activate);
                } catch (PartInitException e) {
                    MarkerSupportInternalUtilities.showViewError(e);
                }
            }
        }
    };
    markersTable.setInput(this);
}

From source file:org.eclipse.ui.tests.statushandlers.LabelProviderWrapperTest.java

License:Open Source License

public void testDisposing() {
    final boolean[] disposed = new boolean[] { false };
    ITableLabelProvider provider = new ITableLabelProvider() {
        public void removeListener(ILabelProviderListener listener) {
        }//from   w w  w .  j a v a2  s. c  o  m

        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        public void dispose() {
            disposed[0] = true;
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public String getColumnText(Object element, int columnIndex) {
            return null;
        }

        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }
    };
    dialogState.put(IStatusDialogConstants.CUSTOM_LABEL_PROVIDER, provider);
    dialogState.put(IStatusDialogConstants.MODALITY_SWITCH, Boolean.TRUE);
    wrapper.dispose();
    assertFalse("Provider should not be disposed during modality switch", disposed[0]);

    dialogState.put(IStatusDialogConstants.MODALITY_SWITCH, Boolean.FALSE);
    wrapper.dispose();
    assertTrue("Provider should be disposed", disposed[0]);
}

From source file:org.eclipse.ui.tests.statushandlers.StatusDialogManagerTest.java

License:Open Source License

/**
 * Be sure that label provider is not disposed during modality switch.
 *//*from   w  w  w  .j a  v a  2s  .  c o  m*/
public void testModalitySwitch4() {
    final boolean[] disposed = new boolean[] { false };
    ITableLabelProvider provider = new ITableLabelProvider() {

        public Image getColumnImage(Object element, int columnIndex) {
            return null;
        }

        public String getColumnText(Object element, int columnIndex) {
            return "";
        }

        public void addListener(ILabelProviderListener listener) {
        }

        public void dispose() {
            disposed[0] = true;
        }

        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        public void removeListener(ILabelProviderListener listener) {
        }

    };
    wsdm.setStatusListLabelProvider(provider);

    wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), false);
    wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), false);
    wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_2), true);

    assertFalse("Label provider should not be disposed during modality switch.", disposed[0]);

    selectWidget(StatusDialogUtil.getOkButton());
    assertTrue("Label should be disposed when the dialog is closed.", disposed[0]);
}