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

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

Introduction

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

Prototype

public TableViewerColumn(TableViewer viewer, TableColumn column) 

Source Link

Document

Creates a new viewer column for the given TableViewer on the given TableColumn .

Usage

From source file:es.optsicom.res.client.views.OptsicomView.java

License:Eclipse Public License

/**
 * This is a callback that will allow us
 * to create the viewer and initialize it.
 *///ww  w . jav a  2  s. c  om
public void createPartControl(Composite parent) {
    viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);

    TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Connection type");
    column.getColumn().setToolTipText("Connection type");
    column.getColumn().setWidth(150);
    column.getColumn().setResizable(true);
    column.getColumn().setMoveable(true);

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Process");
    column.getColumn().setToolTipText("Process");
    column.getColumn().setWidth(250);
    column.getColumn().setResizable(true);
    column.getColumn().setMoveable(true);

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Host");
    column.getColumn().setWidth(250);
    column.getColumn().setResizable(true);
    column.getColumn().setMoveable(true);

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Port");
    column.getColumn().setWidth(100);
    column.getColumn().setResizable(true);
    column.getColumn().setMoveable(true);

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("State");
    column.getColumn().setWidth(200);
    column.getColumn().setResizable(true);
    column.getColumn().setMoveable(true);

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

    viewer.setContentProvider(new ViewContentProvider());
    viewer.setLabelProvider(new ViewLabelProvider());
    viewer.setSorter(new NameSorter());
    viewer.setInput(getViewSite());
    //viewer.getTable().setLinesVisible(true);

    // Create the help context id for the viewer's control
    PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "es.optsicom.res.client.viewer");
    makeActions();
    hookContextMenu();
    hookDoubleClickAction();
}

From source file:eu.aniketos.wp1.ststool.analysis.dialog.internal.ConsoleForResultsTable.java

License:Open Source License

public Composite getComposite(final Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setBackground(ColorConstants.red);
    composite.setLayout(new FillLayout());
    tableViewer = new TableViewer(composite,
            SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.NO_FOCUS) {
    };/*from   w w w.  j av a2s  .  c o  m*/

    tableViewer.getTable().addListener(SWT.EraseItem, new Listener() {

        public void handleEvent(Event event) {
            event.detail &= ~SWT.HOT;
            if ((event.detail & SWT.SELECTED) == 0)
                return; /// item not selected

            Table table = (Table) event.widget;
            TableItem item = (TableItem) event.item;
            int clientWidth = table.getClientArea().width;

            GC gc = event.gc;
            Color oldForeground = gc.getForeground();
            Color oldBackground = gc.getBackground();

            gc.setBackground(item.getBackground());
            gc.setForeground(item.getForeground());
            gc.fillRectangle(0, event.y, clientWidth, event.height);

            gc.setForeground(oldForeground);
            gc.setBackground(oldBackground);
            event.detail &= ~SWT.SELECTED;
        }
    });

    TableViewerColumn treeViewerColumn = new TableViewerColumn(tableViewer,
            SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.NO_FOCUS);
    TableColumn trclmnNewColumn = treeViewerColumn.getColumn();
    trclmnNewColumn.setWidth(300);

    TableViewerColumn treeViewerColumn_1 = new TableViewerColumn(tableViewer,
            SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.NO_FOCUS);
    TableColumn trclmnNewColumn_1 = treeViewerColumn_1.getColumn();
    trclmnNewColumn_1.setWidth(100);

    composite.addControlListener(new TableCompositeAdapter(composite, tableViewer.getTable(),
            treeViewerColumn.getColumn(), treeViewerColumn_1.getColumn()));

    tableViewer.setLabelProvider(new ConsoleObjectLabelProvider());
    tableViewer.setContentProvider(new ArrayContentProvider());
    return composite;
}

From source file:eu.aniketos.wp1.ststool.diagram.custom.utility.ColoredListViewer.java

License:Open Source License

public ColoredListViewer(Composite parent) {
    final Composite tableContainer = new Composite(parent, SWT.NONE);
    tableContainer.setLayout(new FillLayout());
    tableContainer.setBackground(ColorConstants.orange);
    // Define the TableViewer
    viewer = new TableViewer(tableContainer,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);

    viewer.setContentProvider(new ArrayContentProvider());

    if (System.getProperty("os.name").startsWith("Windows")) {
        // First column is for win32 bug      
        final TableViewerColumn viewerColumn0 = new TableViewerColumn(viewer, SWT.NONE);
        final TableColumn column0 = viewerColumn0.getColumn();
        column0.setWidth(0);/*  w w  w.ja  va 2 s  .  c  o  m*/
        column0.setResizable(false);
        column0.setMoveable(false);
        viewerColumn0.setLabelProvider(new ColumnLabelProvider() {

            @Override
            public String getText(Object element) {
                return "";
            }
        });
    }

    viewerColumn = new TableViewerColumn(viewer, SWT.NONE);
    final TableColumn column = viewerColumn.getColumn();
    //column.setWidth(100);
    column.setResizable(true);
    column.setMoveable(false);
    viewerColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            if (labelProvider != null)
                return labelProvider.getText(element);
            return super.getText(element);
        }

        @Override
        public Color getBackground(Object element) {
            if (colorProvider != null)
                return colorProvider.getBackground(element);
            return super.getBackground(element);
        }

        @Override
        public Color getForeground(Object element) {
            if (colorProvider != null)
                return colorProvider.getForeground(element);
            return super.getForeground(element);
        }
    });

    tableContainer.addControlListener(new ControlListener() {

        @Override
        public void controlResized(ControlEvent e) {
            viewerColumn.getColumn()
                    .setWidth(tableContainer.getClientArea().width - (viewer.getTable().getBorderWidth() * 2));
        }

        @Override
        public void controlMoved(ControlEvent e) {

        }
    });

    this.composite = tableContainer;
}

From source file:eu.esdihumboldt.hale.io.csv.ui.LookupTablePage.java

License:Open Source License

private void addPreview(Composite page) {

    tableContainer = new Composite(page, SWT.NONE);
    tableContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout layout = new TableColumnLayout();
    tableContainer.setLayout(layout);//  w ww . j  av a  2  s  .c o  m

    tableViewer = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setLinesVisible(true);
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());

    sourceColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    layout.setColumnData(sourceColumn.getColumn(), new ColumnWeightData(1));
    sourceColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) element;
            return entry.getKey().getStringRepresentation();
        }
    });

    targetColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    layout.setColumnData(targetColumn.getColumn(), new ColumnWeightData(1));
    targetColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) cell.getElement();
            if (entry.getValue() == null) {
                StyledString styledString = new StyledString("(unmapped)", StyledString.DECORATIONS_STYLER);
                cell.setText(styledString.getString());
                cell.setStyleRanges(styledString.getStyleRanges());
            } else {
                cell.setText(entry.getValue().getStringRepresentation());
                cell.setStyleRanges(null);
            }
            super.update(cell);
        }
    });
}

From source file:eu.esdihumboldt.hale.io.gml.ui.wfs.wizard.filter.OGCFilterBuilder.java

License:Open Source License

/**
 * Constructor/*w ww .ja va2s . c  o m*/
 * 
 * @param parent the parent composite
 * @param featureType the feature type to be filtered
 */
public OGCFilterBuilder(Composite parent, FeatureType featureType) {
    super(parent, SWT.NONE);

    this.featureType = featureType;

    setLayout(new GridLayout(1, false));
    setLayoutData(new GridData(GridData.FILL_BOTH));

    final Group conditionsGroup = new Group(this, SWT.NONE);
    conditionsGroup.setLayout(new GridLayout(1, false));
    conditionsGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
    conditionsGroup.setText(Messages.OGCFilterBuilder_0); //$NON-NLS-1$

    Table table = new Table(conditionsGroup, SWT.CHECK | SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    table.setLayoutData(new GridData(GridData.FILL_BOTH));

    tableViewer = new CheckboxTableViewer(table);

    String[] titles = { Messages.OGCFilterBuilder_1, Messages.OGCFilterBuilder_2, Messages.OGCFilterBuilder_3,
            Messages.OGCFilterBuilder_4, Messages.OGCFilterBuilder_5 }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
    int[] widths = { 50, 100, 185, 155, 50 };
    for (int i = 0; i < titles.length; i++) {
        TableViewerColumn columnViewer = new TableViewerColumn(tableViewer, SWT.NONE);
        columnViewer.getColumn().setText(titles[i]);
        columnViewer.getColumn().setWidth(widths[i]);
        columnViewer.getColumn().setResizable(true);
        columnViewer.getColumn().setMoveable(false);
        columnViewer.setEditingSupport(new ConditionEditingSupport(tableViewer, i));
    }

    // tableViewer.setUseHashlookup(true);
    tableViewer.setContentProvider(new ConditionContentProvider());
    tableViewer.setLabelProvider(new ConditionLabelProvider());
    tableViewer.addCheckStateListener(new ConditionCheckStateListener());

    data = new ConditionDataProvider();
    tableViewer.setInput(data);

    final Composite conditionButtons = new Composite(conditionsGroup, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginWidth = 0;
    conditionButtons.setLayout(layout);

    final Button addConditionButton = new Button(conditionButtons, SWT.NONE);
    addConditionButton.setText(Messages.OGCFilterBuilder_6); //$NON-NLS-1$
    addConditionButton.setToolTipText(Messages.OGCFilterBuilder_7); //$NON-NLS-1$
    addConditionButton.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            data.getConditions().add(new Condition());
            tableViewer.refresh();
        }
    });

    final Button removeConditionButton = new Button(conditionButtons, SWT.NONE);
    removeConditionButton.setText(Messages.OGCFilterBuilder_8); //$NON-NLS-1$
    removeConditionButton.setToolTipText(Messages.OGCFilterBuilder_9); //$NON-NLS-1$
    removeConditionButton.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            ISelection selection = tableViewer.getSelection();
            if (selection != null && selection instanceof IStructuredSelection) {
                IStructuredSelection sel = (IStructuredSelection) selection;
                Object obj = sel.getFirstElement();
                if (obj != null && obj instanceof Condition) {
                    data.getConditions().remove(obj);
                    tableViewer.refresh();
                }
            }
        }
    });
}

From source file:eu.esdihumboldt.hale.io.haleconnect.ui.projects.ChooseHaleConnectProjectWizardPage.java

License:Open Source License

/**
 * @see eu.esdihumboldt.hale.ui.util.wizard.ConfigurationWizardPage#createContent(org.eclipse.swt.widgets.Composite)
 *//*from  w  w w.  ja va  2 s  . c om*/
@Override
protected void createContent(Composite parent) {
    Composite page = new Composite(parent, SWT.NONE);
    page.setLayout(new GridLayout(4, false));

    keywordFilter = new Text(page, SWT.SEARCH | SWT.ICON_SEARCH | SWT.BORDER | SWT.ICON_CANCEL);
    keywordFilter.setMessage("Enter search text here...");
    GridDataFactory.fillDefaults().span(2, 1).grab(true, false).applyTo(keywordFilter);

    ownerFilter = new ComboViewer(page);
    GridDataFactory.fillDefaults().grab(false, false).applyTo(ownerFilter.getControl());
    ownerFilter.setContentProvider(new IStructuredContentProvider() {

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

        @Override
        public void dispose() {
            //
        }

        @Override
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof List<?>) {
                List<?> elements = (List<?>) inputElement;
                return elements.toArray();
            } else if (inputElement instanceof Object[]) {
                return (Object[]) inputElement;
            }

            return new Object[] {};
        }
    });
    ownerFilter.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof OwnerFilterEntry) {
                return ((OwnerFilterEntry) element).getLabel();
            }

            return super.getText(element);
        }

    });

    List<OwnerFilterEntry> availableFilters = new ArrayList<>();
    availableFilters.add(NULL_FILTER);
    availableFilters.add(new OwnerFilterEntry(
            new Owner[] { new Owner(OwnerType.USER, haleConnect.getSession().getUserId()) }, "My projects"));

    List<Owner> orgs = new ArrayList<>();
    for (String orgId : haleConnect.getSession().getOrganisationIds()) {
        orgs.add(new Owner(OwnerType.ORGANISATION, orgId));
    }
    if (!orgs.isEmpty()) {
        availableFilters.add(new OwnerFilterEntry(orgs.toArray(new Owner[] {}), "My organisation's projects"));
    }

    ownerFilter.setInput(availableFilters);
    ownerFilter.setSelection(new StructuredSelection(NULL_FILTER));

    Composite tableComposite = new Composite(page, SWT.NONE);
    TableColumnLayout columnLayout = new TableColumnLayout();
    tableComposite.setLayout(columnLayout);

    projects = new TableViewer(tableComposite,
            SWT.V_SCROLL | SWT.BORDER | SWT.H_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION);
    projects.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            update();
        }
    });

    TableViewerColumn nameColumn = new TableViewerColumn(projects, SWT.LEAD);
    nameColumn.getColumn().setText("Project name");
    nameColumn.setLabelProvider(new ColumnLabelProvider() {

        /**
         * @see org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
         */
        @Override
        public String getText(Object element) {
            if (element instanceof HaleConnectProjectInfo) {
                return ((HaleConnectProjectInfo) element).getName();
            }

            return element.toString();
        }

    });
    columnLayout.setColumnData(nameColumn.getColumn(), new ColumnWeightData(45, 200, true));

    TableViewerColumn authorColumn = new TableViewerColumn(projects, SWT.LEAD);
    authorColumn.getColumn().setText("Author");
    authorColumn.setLabelProvider(new ColumnLabelProvider() {

        /**
         * @see org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
         */
        @Override
        public String getText(Object element) {
            if (element instanceof HaleConnectProjectInfo) {
                return ((HaleConnectProjectInfo) element).getAuthor();
            }

            return element.toString();
        }

    });
    columnLayout.setColumnData(authorColumn.getColumn(), new ColumnWeightData(20, 50, true));

    TableViewerColumn ownerColumn = new TableViewerColumn(projects, SWT.LEAD);
    ownerColumn.getColumn().setText("Owner");
    ownerColumn.setLabelProvider(new ColumnLabelProvider() {

        /**
         * @see org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
         */
        @Override
        public String getText(Object element) {
            if (element instanceof HaleConnectProjectInfo) {
                Owner owner = ((HaleConnectProjectInfo) element).getOwner();
                if (owner.isUser()) {
                    try {
                        HaleConnectUserInfo user = haleConnect.getUserInfo(owner.getId());
                        if (!StringUtils.isEmpty(user.getFullName())) {
                            return user.getFullName();
                        } else if (!StringUtils.isEmpty(user.getScreenName())) {
                            return user.getScreenName();
                        } else {
                            return MessageFormat.format("<user {0}>", user.getUserId());
                        }
                    } catch (HaleConnectException e) {
                        log.error(e.getMessage(), e);
                        return MessageFormat.format("<user {0}>", owner.getId());
                    }
                } else if (owner.isOrganisation()) {
                    try {
                        return haleConnect.getOrganisationInfo(owner.getId()).getName();
                    } catch (HaleConnectException e) {
                        log.error(e.getMessage(), e);
                        return MessageFormat.format("<organisation {0}>", owner.getId());
                    }
                } else {
                    return "<unknown owner type> ID: " + owner.getId();
                }
            }

            return element.toString();
        }

    });
    columnLayout.setColumnData(ownerColumn.getColumn(), new ColumnWeightData(35, 100, true));

    final Table projectsTable = projects.getTable();
    projectsTable.setHeaderVisible(true);
    projectsTable.setLinesVisible(true);

    tableComposite.setLayoutData(GridDataFactory.fillDefaults().span(4, 1).grab(true, true).create());
    projects.setContentProvider(ArrayContentProvider.getInstance());

    populateProjects(projectsTable);

    final ProjectFilter projectFilter = new ProjectFilter(projects);
    projects.addFilter(projectFilter);

    ownerFilter.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (event.getSelection() instanceof StructuredSelection) {
                StructuredSelection selection = (StructuredSelection) event.getSelection();
                if (selection.getFirstElement() instanceof OwnerFilterEntry) {
                    OwnerFilterEntry selectedFilter = (OwnerFilterEntry) selection.getFirstElement();
                    if (selectedFilter.equals(NULL_FILTER)) {
                        projectFilter.clearOwnerFilter();
                    } else {
                        projectFilter.filterByOwners(Arrays.asList(selectedFilter.getOwner()));
                    }
                }
            }
        }
    });

    keywordFilter.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            projectFilter.setSearchText(keywordFilter.getText());
        }
    });

    final Button refresh = new Button(page, SWT.FLAT);
    refresh.setText("Refresh");
    GridDataFactory.fillDefaults().span(1, 1).grab(false, false).applyTo(refresh);
    refresh.addSelectionListener(new SelectionAdapter() {

        /**
         * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
         */
        @Override
        public void widgetSelected(SelectionEvent e) {
            populateProjects(projectsTable);
        }

    });

    ownerFilter.getControl().setFocus();
    setControl(page);

    update();

}

From source file:eu.esdihumboldt.hale.ui.functions.core.ClassificationMappingParameterPage.java

License:Open Source License

private Control createManualTabControl(Composite tabParent) {
    // TODO load occurring value sources
    Composite tabContent = new Composite(tabParent, SWT.NONE);
    tabContent.setLayout(new GridLayout(1, true));

    ToolBar toolBar = new ToolBar(tabContent, SWT.NONE);
    toolBar.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

    Composite tableContainer = new Composite(tabContent, SWT.NONE);
    tableContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout layout = new TableColumnLayout();
    tableContainer.setLayout(layout);//  www .  j a  v a 2s  . c o  m

    tableViewer = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setLinesVisible(true);
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());

    TableViewerColumn sourceColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    sourceColumn.getColumn().setText("Source value");
    layout.setColumnData(sourceColumn.getColumn(), new ColumnWeightData(1));
    sourceColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) element;
            return entry.getKey().getStringRepresentation();
        }
    });

    TableViewerColumn targetColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    targetColumn.getColumn().setText("Target value");
    layout.setColumnData(targetColumn.getColumn(), new ColumnWeightData(1));
    targetColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) cell.getElement();
            if (entry.getValue() == null) {
                StyledString styledString = new StyledString("(unmapped)", StyledString.DECORATIONS_STYLER);
                cell.setText(styledString.getString());
                cell.setStyleRanges(styledString.getStyleRanges());
            } else {
                cell.setText(entry.getValue().getStringRepresentation());
                cell.setStyleRanges(null);
            }
            super.update(cell);
        }
    });

    tableViewer.setInput(lookupTable.entrySet());

    tableViewer.getTable().addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ViewerCell cell = tableViewer.getCell(new Point(e.x, e.y));
            if (cell != null) {
                @SuppressWarnings("unchecked")
                Entry<Value, Value> entry = (Entry<Value, Value>) cell.getElement();
                Value oldValue;
                Value newValue;
                if (cell.getColumnIndex() == 0) {
                    oldValue = entry.getKey();
                    newValue = selectValue(sourceProperty, sourceEntity, "Edit source value",
                            "Enter a new source value", oldValue.getStringRepresentation());
                } else {
                    oldValue = entry.getValue();
                    String initialValue = oldValue == null ? null : oldValue.getStringRepresentation();
                    newValue = selectValue(targetProperty, targetEntity, "Edit target value",
                            "Enter a target value", initialValue);
                }
                if (newValue == null)
                    return;
                if (cell.getColumnIndex() == 0) {
                    if (!newValue.equals(oldValue) && lookupTable.containsKey(newValue)) {
                        showDuplicateSourceWarning(newValue.getStringRepresentation());
                    } else {
                        lookupTable.put(newValue, entry.getValue());
                        lookupTable.remove(oldValue);
                        tableViewer.refresh();
                    }
                } else {
                    entry.setValue(newValue);
                    tableViewer.update(entry, null);
                }
            }
        }
    });

    final ToolItem valueAdd = new ToolItem(toolBar, SWT.PUSH);
    final ToolItem fillValues = new ToolItem(toolBar, SWT.PUSH);
    new ToolItem(toolBar, SWT.SEPARATOR);
    final ToolItem loadButton = new ToolItem(toolBar, SWT.PUSH);
    saveButton = new ToolItem(toolBar, SWT.PUSH);
    new ToolItem(toolBar, SWT.SEPARATOR);
    final ToolItem valueRemove = new ToolItem(toolBar, SWT.PUSH);
    removeAllButton = new ToolItem(toolBar, SWT.PUSH);

    valueAdd.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_ADD));
    valueAdd.setToolTipText("Add source value");
    valueAdd.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            Value newSource = selectValue(sourceProperty, sourceEntity, "Add source value",
                    "Enter a new source value", null);
            if (newSource != null) {
                if (lookupTable.containsKey(newSource))
                    showDuplicateSourceWarning(newSource.getStringRepresentation());
                else {
                    lookupTable.put(newSource, null);
                    removeAllButton.setEnabled(true);
                    saveButton.setEnabled(true);
                    tableViewer.refresh();
                }
            }
        }
    });

    loadButton.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_OPEN));
    loadButton.setToolTipText("Load classification from file");
    loadButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            LookupTableLoadWizard wizard = new LookupTableLoadWizard();
            LookupLoadAdvisor advisor = new LookupLoadAdvisor();
            wizard.setAdvisor(advisor, null);
            Shell shell = Display.getCurrent().getActiveShell();
            HaleWizardDialog dialog = new HaleWizardDialog(shell, wizard);
            dialog.open();

            if (advisor.getLookupTable() != null) {
                lookupTable.putAll(advisor.getLookupTable().getTable().asMap());
                tableViewer.refresh();
                removeAllButton.setEnabled(!lookupTable.isEmpty());
                saveButton.setEnabled(!lookupTable.isEmpty());
            }
        }
    });

    fillValues.setImage(fillValuesIcon);
    fillValues.setToolTipText("Attempt to fill source values with enumerations and occurring values.");
    fillValues.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            // first try enumeration
            Enumeration<?> enumeration = sourceProperty.getPropertyType().getConstraint(Enumeration.class);
            if (enumeration.getValues() != null) {
                addSourceValuesIfNew(enumeration.getValues());
            }

            // then try occurring values
            if (!ovs.updateOccurringValues(sourceEntity)) {
                // values already there or not possible
                addOccurringSourceValues(ovs.getOccurringValues(sourceEntity));
            } else {
                // job is running, listener will be notified
            }
            removeAllButton.setEnabled(!lookupTable.isEmpty());
            saveButton.setEnabled(!lookupTable.isEmpty());
        }
    });

    saveButton.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_SAVE));
    saveButton.setToolTipText("Save classification to file");
    saveButton.setEnabled(false);
    saveButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            LookupTableExportWizard wizard = new LookupTableExportWizard();
            LookupExportAdvisor advisor = new LookupExportAdvisor(
                    new LookupTableInfoImpl(new LookupTableImpl(lookupTable), "current", "not set"));
            wizard.setAdvisor(advisor, null);
            Shell shell = Display.getCurrent().getActiveShell();
            HaleWizardDialog dialog = new HaleWizardDialog(shell, wizard);
            dialog.open();
        }
    });

    valueRemove.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_REMOVE));
    valueRemove.setToolTipText("Remove classification entry");
    valueRemove.setEnabled(false);
    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            valueRemove.setEnabled(!event.getSelection().isEmpty());
            saveButton.setEnabled(!event.getSelection().isEmpty());
        }
    });
    valueRemove.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            if (tableViewer.getSelection().isEmpty())
                return;

            Object element = ((IStructuredSelection) tableViewer.getSelection()).getFirstElement();
            @SuppressWarnings("unchecked")
            Entry<Value, Value> entry = (Entry<Value, Value>) element;
            lookupTable.remove(entry.getKey());
            tableViewer.refresh();
            removeAllButton.setEnabled(!lookupTable.isEmpty());
            saveButton.setEnabled(!lookupTable.isEmpty());
        }
    });

    removeAllButton.setImage(CommonSharedImages.getImageRegistry().get(CommonSharedImages.IMG_TRASH));
    removeAllButton.setEnabled(false);
    removeAllButton.setToolTipText("Remove complete classification");
    removeAllButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            lookupTable.clear();
            tableViewer.refresh();
            removeAllButton.setEnabled(false);
            saveButton.setEnabled(false);
        }
    });

    Label desc = new Label(tabContent, SWT.NONE);
    desc.setText("Double click on a table cell to change its value.");

    return tabContent;
}

From source file:eu.esdihumboldt.hale.ui.functions.core.SourceListParameterPage.java

License:Open Source License

/**
 * @see HaleWizardPage#createContent(Composite)
 *///from  ww  w  .  j  av a 2 s .co m
@Override
protected void createContent(Composite page) {
    page.setLayout(GridLayoutFactory.swtDefaults().create());

    // input field
    textField = createAndLayoutTextField(page);

    // let subclasses for example add validation
    configure(textField);

    setText(textField, initialValue);

    // variables
    Label label = new Label(page, SWT.NONE);
    label.setText("Available variables (double click to insert)");
    label.setLayoutData(GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.CENTER).indent(4, 12).create());

    // variables table
    Composite tableComposite = new Composite(page, SWT.NONE);
    tableComposite
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 100).create());
    TableColumnLayout columnLayout = new TableColumnLayout();
    tableComposite.setLayout(columnLayout);
    varTable = new TableViewer(tableComposite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    varTable.getTable().setHeaderVisible(true);
    TableViewerColumn entityColumn = new TableViewerColumn(varTable, SWT.NONE);
    columnLayout.setColumnData(entityColumn.getColumn(), new ColumnWeightData(2, true));
    entityColumn.getColumn().setText("Entity");
    varTable.setContentProvider(ArrayContentProvider.getInstance());
    varTable.setLabelProvider(new StyledDefinitionLabelProvider() {

        @Override
        protected Object extractElement(Object element) {
            if (element instanceof Entry) {
                return ((Entry<?, ?>) element).getKey();
            }

            return super.extractElement(element);
        }

    });
    varTable.getTable().addMouseListener(new MouseAdapter() {

        /**
         * @see MouseAdapter#mouseDoubleClick(MouseEvent)
         */
        @Override
        public void mouseDoubleClick(MouseEvent e) {
            ISelection sel = varTable.getSelection();
            if (!sel.isEmpty() && sel instanceof IStructuredSelection) {
                Object selected = ((IStructuredSelection) sel).getFirstElement();
                if (selected instanceof Entry) {
                    selected = ((Entry<?, ?>) selected).getValue();
                }

                insertTextAtCurrentPos(textField, selected.toString());
            }
        }
    });

    // variable name column
    TableViewerColumn varColumn = new TableViewerColumn(varTable, SWT.NONE);
    columnLayout.setColumnData(varColumn.getColumn(), new ColumnWeightData(1, true));
    varColumn.getColumn().setText("Variable");
    varColumn.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();

            if (element instanceof Entry) {
                element = ((Entry<?, ?>) element).getValue();
            }

            cell.setText(element.toString());
        }
    });
}

From source file:eu.esdihumboldt.hale.ui.io.project.update.SchemaUpdateComponent.java

License:Open Source License

/**
 * Constructor.//ww  w .java  2s. c  o  m
 * 
 * @param parent the parent composite
 * @param actionId the action ID
 * @param configurations the list of configurations (the component may make
 *            changes to this list)
 */
public SchemaUpdateComponent(Composite parent, final String actionId,
        final List<IOConfiguration> configurations) {
    super(parent, SWT.NONE);
    this.actionId = actionId;
    this.configurations = configurations;

    GridLayoutFactory.swtDefaults().numColumns(2).applyTo(this);

    // intro label
    Label intro = new Label(this, SWT.WRAP);
    intro.setText("Please select a schema from the list to update/replace it:");
    GridDataFactory.fillDefaults().grab(true, false).span(2, 1).applyTo(intro);

    // viewer with schema list

    Composite tableContainer = new Composite(this, SWT.NONE);
    tableContainer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableColumnLayout layout = new TableColumnLayout();
    tableContainer.setLayout(layout);

    tableViewer = new TableViewer(tableContainer, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER);
    tableViewer.getTable().setLinesVisible(true);
    tableViewer.getTable().setHeaderVisible(true);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());
    tableViewer.addFilter(new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof IOConfiguration) {
                return actionId.equals(((IOConfiguration) element).getActionId());
            }
            return false;
        }

    });

    TableViewerColumn typeColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    layout.setColumnData(typeColumn.getColumn(), new ColumnWeightData(1));
    typeColumn.getColumn().setText("Type");
    typeColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            IOConfiguration config = (IOConfiguration) element;
            return IOProviderExtension.getInstance().getFactory(config.getProviderId()).getDisplayName();
        }
    });

    TableViewerColumn locationColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    layout.setColumnData(locationColumn.getColumn(), new ColumnWeightData(3));
    locationColumn.getColumn().setText("Location");
    locationColumn.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            IOConfiguration config = (IOConfiguration) element;
            return config.getProviderConfiguration().get(ImportProvider.PARAM_SOURCE).toString();
        }
    });

    tableViewer.setInput(configurations);

    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateState();
        }
    });

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            updateSelectedSchema();
        }
    });

    // update button
    updateButton = new Button(this, SWT.PUSH);
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.BEGINNING).applyTo(updateButton);
    updateButton.setText("Update");
    updateButton.setToolTipText("Update/replace the selected schema");
    updateButton.addSelectionListener(new SelectionAdapter() {

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

    // initial state update
    updateState();
}

From source file:eu.esdihumboldt.hale.ui.scripting.groovy.GroovyEditor.java

License:Open Source License

/**
 * Default constructor./*from   w  ww. j a  va 2s .c om*/
 * 
 * @param parent the parent composite
 * @param script the script object
 * @param binding the target binding
 */
public GroovyEditor(Composite parent, Script script, Class<?> binding) {
    this.script = script;
    this.colorManager = new GroovyColorManager();
    //      this.binding = binding;
    testValues = new InstanceTestValues();

    composite = new Composite(parent, SWT.NONE);
    composite.setLayout(GridLayoutFactory.swtDefaults().create());

    viewer = createAndLayoutTextField(composite);
    viewer.configure(new SimpleGroovySourceViewerConfiguration(colorManager));
    IDocument document = new Document("");
    GroovySourceViewerUtil.setupDocument(document);
    viewer.setDocument(document);

    viewer.getControl().addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(DisposeEvent e) {
            // color manager needs to be disposed
            colorManager.dispose();
        }
    });

    // control decoration
    decorator = new ControlDecoration(viewer.getControl(), SWT.LEFT | SWT.TOP, composite);
    // set initial status
    decorator.hide();
    // set image
    FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault()
            .getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
    decorator.setImage(fieldDecoration.getImage());

    viewer.getDocument().addDocumentListener(new IDocumentListener() {

        @Override
        public void documentChanged(DocumentEvent event) {
            // update value
            String newValue = event.getDocument().get();
            fireValueChanged(VALUE, currentValue, newValue);
            currentValue = newValue;

            validate();
        }

        @Override
        public void documentAboutToBeChanged(DocumentEvent event) {
            // ignore
        }
    });

    // variables
    Label label = new Label(composite, SWT.NONE);
    label.setText("Available variables (double click to insert)");
    label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));

    // variables table
    Composite tableComposite = new Composite(composite, SWT.NONE);
    tableComposite.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    TableColumnLayout columnLayout = new TableColumnLayout();
    tableComposite.setLayout(columnLayout);
    varTable = new TableViewer(tableComposite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    TableViewerColumn column = new TableViewerColumn(varTable, SWT.NONE);
    columnLayout.setColumnData(column.getColumn(), new ColumnWeightData(1, false));
    varTable.setContentProvider(ArrayContentProvider.getInstance());
    varTable.setLabelProvider(new DefinitionLabelProvider(true, true) {

        /**
         * @see eu.esdihumboldt.hale.ui.common.definition.viewer.DefinitionLabelProvider#getText(java.lang.Object)
         */
        @Override
        public String getText(Object element) {
            return GroovyEditor.this.script.getVariableName((PropertyEntityDefinition) element);
        }
    });
    varTable.getTable().addMouseListener(new MouseAdapter() {

        /**
         * @see MouseAdapter#mouseDoubleClick(MouseEvent)
         */
        @Override
        public void mouseDoubleClick(MouseEvent e) {
            int index = varTable.getTable().getSelectionIndex();
            if (index >= 0) {
                String var = varTable.getTable().getItem(index).getText();
                Point selRange = viewer.getSelectedRange();
                try {
                    viewer.getDocument().replace(selRange.x, selRange.y, var);
                } catch (BadLocationException ble) {
                    // ignore
                }
            }
        }
    });

    validate();
}