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:com.bdaum.zoom.peer.internal.preferences.PeerPreferencePage.java

License:Open Source License

@SuppressWarnings("unused")
private Control createPeerGroup(CTabFolder parent) {
    Composite comp = new Composite(parent, SWT.NONE);
    comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    comp.setLayout(new GridLayout(1, false));
    Composite innerComp = new Composite(comp, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginWidth = 0;/*w  ww  . ja va 2 s  .  c  o m*/
    layout.marginHeight = 20;
    innerComp.setLayout(layout);
    innerComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    Label label = new Label(innerComp, SWT.WRAP);
    label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1));
    label.setText(Messages.PeerPreferencePage_network_geography);
    peerViewer = new TableViewer(innerComp, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);
    peerViewer.getTable().setLinesVisible(true);
    peerViewer.getTable().setHeaderVisible(true);
    peerViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableViewerColumn col0 = new TableViewerColumn(peerViewer, SWT.NONE);
    col0.getColumn().setWidth(100);
    col0.getColumn().setText(Messages.PeerPreferencePage_nickname);
    col0.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof PeerDefinition) {
                String nick = ((PeerDefinition) element).getNickname();
                return nick == null ? "" : nick; //$NON-NLS-1$
            }
            return ""; //$NON-NLS-1$
        }
    });
    EditingSupport editingSupport = new EditingSupport(peerViewer) {
        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof PeerDefinition && value instanceof PeerDefinition) {
                ((PeerDefinition) element).setHost(((PeerDefinition) value).getHost());
                ((PeerDefinition) element).setNickname(((PeerDefinition) value).getNickname());
                ((PeerDefinition) element).setPort(((PeerDefinition) value).getPort());
                peerViewer.update(element, null);
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof PeerDefinition)
                return element;
            return null;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            if (element instanceof PeerDefinition) {
                return new DialogCellEditor(peerViewer.getTable()) {
                    @Override
                    protected Object openDialogBox(Control cellEditorWindow) {
                        PeerDefinitionDialog dialog = new PeerDefinitionDialog(cellEditorWindow.getShell(),
                                (PeerDefinition) element, true, false, false);
                        if (dialog.open() == Window.OK)
                            return dialog.getResult();
                        return null;
                    }
                };
            }
            return null;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }
    };
    col0.setEditingSupport(editingSupport);

    TableViewerColumn col1 = new TableViewerColumn(peerViewer, SWT.NONE);
    col1.getColumn().setWidth(250);
    col1.getColumn().setText(Messages.PeerPreferencePage_peer_location);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof PeerDefinition)
                return ((PeerDefinition) element).getLocation();
            return ""; //$NON-NLS-1$
        }
    });
    col1.setEditingSupport(editingSupport);
    TableViewerColumn col2 = new TableViewerColumn(peerViewer, SWT.NONE);
    col2.getColumn().setWidth(150);
    col2.getColumn().setText(Messages.PeerPreferencePage_status);
    col2.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof PeerDefinition)
                return PeerActivator.getDefault().isOnline((PeerDefinition) element)
                        ? Messages.PeerPreferencePage_online
                        : Messages.PeerPreferencePage_offline;
            return ""; //$NON-NLS-1$
        }
    });
    peerViewer.setContentProvider(ArrayContentProvider.getInstance());
    new SortColumnManager(peerViewer, new int[] { SWT.UP, SWT.UP, SWT.NONE }, 0);
    peerViewer.setComparator(ZViewerComparator.INSTANCE);
    Composite buttonGroup = new Composite(innerComp, SWT.NONE);
    buttonGroup.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, true));
    buttonGroup.setLayout(new GridLayout());
    Button addButton = new Button(buttonGroup, SWT.PUSH);
    addButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addButton.setText(Messages.PeerPreferencePage_add);
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            PeerDefinitionDialog dialog = new PeerDefinitionDialog(getShell(), null, true, false, false);
            if (dialog.open() == PeerDefinitionDialog.OK) {
                PeerDefinition newPeer = dialog.getResult();
                @SuppressWarnings("unchecked")
                List<PeerDefinition> peers = (List<PeerDefinition>) peerViewer.getInput();
                peers.add(newPeer);
                peerViewer.setInput(peers);
                peerViewer.setSelection(new StructuredSelection(newPeer));
            }
        }
    });
    final Button removeButton = new Button(buttonGroup, SWT.PUSH);
    removeButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    removeButton.setText(Messages.PeerPreferencePage_remove);
    removeButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = peerViewer.getStructuredSelection();
            Object firstElement = sel.getFirstElement();
            if (firstElement instanceof PeerDefinition) {
                @SuppressWarnings("unchecked")
                List<PeerDefinition> peers = (List<PeerDefinition>) peerViewer.getInput();
                peers.remove(firstElement);
                peerViewer.setInput(peers);
            }
        }
    });
    removeButton.setEnabled(false);
    peerViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            removeButton.setEnabled(!event.getSelection().isEmpty());
        }
    });

    return comp;
}

From source file:com.bdaum.zoom.ui.internal.dialogs.AutoRuleComponent.java

License:Open Source License

@SuppressWarnings("unused")
public AutoRuleComponent(Composite parent, int style, IAdaptable info) {
    this.info = info;
    composite = new Composite(parent, SWT.NONE);
    Layout layout = parent.getLayout();/*from   ww  w  .  ja  va 2 s . com*/
    if (layout instanceof GridLayout) {
        GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
        layoutData.horizontalSpan = ((GridLayout) layout).numColumns;
        composite.setLayoutData(layoutData);
    }
    composite.setLayout(new GridLayout());
    new Label(composite, SWT.NONE).setText(Messages.AutoRuleComponent_collections_expl);
    CGroup autoGroup = UiUtilities.createGroup(composite, 2, Messages.AutoRuleComponent_title);
    ruleViewer = new TableViewer(autoGroup, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL);
    TableViewerColumn col0 = new TableViewerColumn(ruleViewer, SWT.NONE);
    col0.getColumn().setText(Messages.AutoRuleComponent_name);
    col0.getColumn().setWidth(100);
    col0.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof AutoRule)
                return ((AutoRule) element).getName();
            return element.toString();
        }
    });
    TableViewerColumn col1 = new TableViewerColumn(ruleViewer, SWT.NONE);
    col1.getColumn().setText(Messages.AutoRuleComponent_group);
    col1.getColumn().setWidth(180);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof AutoRule)
                return ((AutoRule) element).getQfield().getCategory().toString();
            return element.toString();
        }
    });
    TableViewerColumn col2 = new TableViewerColumn(ruleViewer, SWT.NONE);
    col2.getColumn().setText(Messages.AutoRuleComponent_field);
    col2.getColumn().setWidth(220);
    col2.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof AutoRule)
                return ((AutoRule) element).getQfield().getLabel();
            return element.toString();
        }
    });
    TableViewerColumn col3 = new TableViewerColumn(ruleViewer, SWT.NONE);
    col3.getColumn().setText(Messages.AutoRuleComponent_type);
    col3.getColumn().setWidth(160);
    col3.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof AutoRule) {
                AutoRule rule = (AutoRule) element;
                if (rule.hasCustomIntervals())
                    return Messages.AutoRuleComponent_custom;
                QueryField qfield = rule.getQfield();
                switch (qfield.getAutoPolicy()) {
                case QueryField.AUTO_DISCRETE:
                    if (qfield.getEnumeration() != null)
                        return Messages.AutoRuleComponent_enum;
                    if (qfield.getType() == QueryField.T_BOOLEAN)
                        return Messages.AutoRuleComponent_bool;
                    return Messages.AutoRuleComponent_discrete;
                case QueryField.AUTO_LINEAR:
                    return Messages.AutoRuleComponent_linear;
                case QueryField.AUTO_LOG:
                    return Messages.AutoRuleComponent_exp;
                case QueryField.AUTO_CONTAINS:
                    return Messages.AutoRuleComponent_arbitrary;
                case QueryField.AUTO_SELECT:
                    return Messages.AutoRuleComponent_multiple;
                }
            }
            return element.toString();
        }
    });
    TableViewerColumn col4 = new TableViewerColumn(ruleViewer, SWT.NONE);
    col4.getColumn().setText(Messages.AutoRuleComponent_parms);
    col4.getColumn().setWidth(220);
    col4.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof AutoRule) {
                AutoRule rule = (AutoRule) element;
                QueryField qfield = rule.getQfield();
                switch (qfield.getAutoPolicy()) {
                case QueryField.AUTO_CONTAINS:
                case QueryField.AUTO_SELECT:
                    return rule.getValueSpec();
                case QueryField.AUTO_DISCRETE:
                    if (qfield.getEnumeration() != null)
                        return rule.getEnumerationSpec();
                    if (qfield.getType() == QueryField.T_BOOLEAN)
                        return Format.booleanFormatter.toString(Boolean.parseBoolean(rule.getBooleanSpec()));
                    //$FALL-THROUGH$
                default:
                    return rule.getIntervalSpec();
                }
            }
            return element.toString();
        }
    });

    ruleViewer.getTable().setHeaderVisible(true);
    ruleViewer.getTable().setLinesVisible(true);
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.heightHint = (style & SWT.SHORT) != 0 ? 150 : 300;
    ruleViewer.getTable().setLayoutData(layoutData);
    ruleViewer.setContentProvider(ArrayContentProvider.getInstance());
    new SortColumnManager(ruleViewer, new int[] { SWT.UP, SWT.UP, SWT.UP, SWT.NONE, SWT.NONE }, 0);
    ruleViewer.setComparator(ZViewerComparator.INSTANCE);
    ruleViewer.getControl().addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.CTRL)
                cntrlDwn = true;
        }

        @Override
        public void keyReleased(KeyEvent e) {
            if (e.keyCode == SWT.CTRL)
                cntrlDwn = false;
        }
    });
    ruleViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
            if (cntrlDwn) {
                if (editAutoButton.isEnabled())
                    editRule();
                cntrlDwn = false;
            }
        }
    });
    ruleViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            if (!cntrlDwn && editAutoButton.isEnabled())
                editRule();
        }
    });
    ruleViewer.setInput(autoRules);
    Composite autoButtonBar = new Composite(autoGroup, SWT.NONE);
    autoButtonBar.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false));
    autoButtonBar.setLayout(new GridLayout(1, false));
    addAutoButton = new Button(autoButtonBar, SWT.PUSH);
    addAutoButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    addAutoButton.setText(Messages.AutoRuleComponent_add);
    addAutoButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            AutoRuleDialog dialog = new AutoRuleDialog(parent.getShell(), null, autoRules);
            if (dialog.open() == AutoRuleDialog.OK) {
                AutoRule rule = dialog.getRule();
                autoRules.add(rule);
                ruleViewer.add(rule);
                ruleViewer.setSelection(new StructuredSelection(rule));
                fillAccelViewer();
                updateButtons();
            }
        }
    });
    editAutoButton = new Button(autoButtonBar, SWT.PUSH);
    editAutoButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    editAutoButton.setText(Messages.AutoRuleComponent_edit);
    editAutoButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            editRule();
        }
    });
    removeAutoButton = new Button(autoButtonBar, SWT.PUSH);
    removeAutoButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    removeAutoButton.setText(Messages.AutoRuleComponent_remove);
    removeAutoButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            @SuppressWarnings("unchecked")
            Iterator<AutoRule> it = ruleViewer.getStructuredSelection().iterator();
            while (it.hasNext()) {
                AutoRule rule = it.next();
                int index = autoRules.indexOf(rule);
                autoRules.remove(rule);
                if (index >= autoRules.size())
                    --index;
                ruleViewer.remove(rule);
                if (index >= 0)
                    ruleViewer.setSelection(new StructuredSelection(autoRules.get(index)));
            }
            fillAccelViewer();
            updateButtons();
        }
    });
    new Label(autoButtonBar, SWT.SEPARATOR | SWT.HORIZONTAL)
            .setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    applyButton = new Button(autoButtonBar, SWT.PUSH);
    applyButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    applyButton.setText(Messages.AutoRuleComponent_apply);
    applyButton.setToolTipText(Messages.AutoRuleComponent_apply_tooltip);
    applyButton.addSelectionListener(new SelectionAdapter() {
        @SuppressWarnings("unchecked")
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = ruleViewer.getStructuredSelection();
            if (!sel.isEmpty())
                OperationJob.executeSlaveOperation(
                        new AutoRuleOperation(new ArrayList<AutoRule>(sel.toList()), null, null), info, false);
        }
    });
    CGroup accelGroup = UiUtilities.createGroup(composite, 1, Messages.AutoRuleComponent_accel_candidates);
    new Label(accelGroup, SWT.WRAP).setText(Messages.AutoRuleComponent_accel_msg);
    accelViewer = CheckboxTableViewer.newCheckList(accelGroup, SWT.V_SCROLL | SWT.BORDER);
    accelViewer.getTable().setLayoutData(new GridData(400, (style & SWT.SHORT) != 0 ? 50 : 80));
    accelViewer.setContentProvider(ArrayContentProvider.getInstance());
    accelViewer.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof QueryField)
                return ((QueryField) element).getLabel();
            return element.toString();
        }
    });
    accelViewer.setComparator(ZViewerComparator.INSTANCE);
    updateButtons();
}

From source file:com.bdaum.zoom.ui.internal.dialogs.CategorizeDialog.java

License:Open Source License

@SuppressWarnings("unused")
protected void createProposalArea() {
    Composite proposalArea = new Composite(comp, SWT.NONE);
    proposalArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    proposalArea.setLayout(new GridLayout(1, false));
    proposalTitle = new Label(proposalArea, SWT.NONE);
    proposalTitle.setFont(JFaceResources.getHeaderFont());
    proposalTitle.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    setProposalTitel();//from   w w w. jav  a  2s.co m
    stack = new Composite(proposalArea, SWT.BORDER);
    stack.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    stackLayout = new StackLayout();
    stack.setLayout(stackLayout);
    PairLabelProvider pairLabelProvider = new PairLabelProvider();
    CategoryLabelProvider catLabelProvider = new CategoryLabelProvider(getVocabManager());
    ISelectionChangedListener selectionChangedListener = new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    };
    // Unsplit version
    propComp = new Composite(stack, SWT.NONE);
    propComp.setLayout(new GridLayout(2, false));
    Label label = new Label(propComp, SWT.NONE);
    label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1));
    label.setText(Messages.CategorizeDialog_mark_keywords);

    proposalViewer = CheckboxTableViewer.newCheckList(propComp, SWT.V_SCROLL);
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.widthHint = 200;
    proposalViewer.getTable().setLayoutData(layoutData);
    TableViewerColumn col1 = new TableViewerColumn(proposalViewer, SWT.NONE);
    col1.getColumn().setWidth(150);
    col1.setLabelProvider(catLabelProvider);
    TableViewerColumn col2 = new TableViewerColumn(proposalViewer, SWT.NONE);
    col2.getColumn().setWidth(70);

    col2.setLabelProvider(pairLabelProvider);
    proposalViewer.setContentProvider(ArrayContentProvider.getInstance());
    proposalViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { selectionTransfer },
            new ProposalDragSourceListener(proposalViewer));
    proposalViewer.addSelectionChangedListener(selectionChangedListener);
    ZColumnViewerToolTipSupport.enableFor(proposalViewer);

    Composite buttonArea = new Composite(propComp, SWT.NONE);
    buttonArea.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, false));
    buttonArea.setLayout(new GridLayout(1, false));
    new AllNoneGroup(buttonArea, new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            proposalViewer.setAllChecked(e.widget.getData() == AllNoneGroup.ALL);
            updateButtons();
        }
    });
    Button button = new Button(buttonArea, SWT.PUSH);
    button.setText(Messages.CategorizeDialog_select_unpaired);
    button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Token[] tokens = (Token[]) proposalViewer.getInput();
            for (Token tok : tokens) {
                proposalViewer.setChecked(tok, tok.getMatch() == UNCHECKED);
            }
        }
    });
    // Split version
    splitComp = new Composite(stack, SWT.NONE);
    splitComp.setLayout(new GridLayout(2, false));
    Label catLabel = new Label(splitComp, SWT.NONE);
    catLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false, 2, 1));
    catLabel.setFont(JFaceResources.getBannerFont());
    catLabel.setText(Messages.CategorizeDialog_proposed_as_categories);
    Label catLabel2 = new Label(splitComp, SWT.NONE);
    catLabel2.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false, 2, 1));
    catLabel2.setText(Messages.CategorizeDialog_can_be_marked_as_keywords);
    proposalViewer1 = CheckboxTableViewer.newCheckList(splitComp, SWT.V_SCROLL);
    layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.widthHint = 200;
    layoutData.heightHint = 100;
    proposalViewer1.getTable().setLayoutData(layoutData);
    col1 = new TableViewerColumn(proposalViewer1, SWT.NONE);
    col1.getColumn().setWidth(150);
    col1.setLabelProvider(catLabelProvider);
    col2 = new TableViewerColumn(proposalViewer1, SWT.NONE);
    col2.getColumn().setWidth(70);

    col2.setLabelProvider(pairLabelProvider);
    proposalViewer1.setContentProvider(ArrayContentProvider.getInstance());
    proposalViewer1.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { selectionTransfer },
            new ProposalDragSourceListener(proposalViewer1));
    proposalViewer1.addSelectionChangedListener(selectionChangedListener);
    ColumnViewerToolTipSupport.enableFor(proposalViewer1);

    Composite buttonArea1 = new Composite(splitComp, SWT.NONE);
    buttonArea1.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false));
    buttonArea1.setLayout(new GridLayout(1, false));
    new AllNoneGroup(buttonArea1, new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            proposalViewer1.setAllChecked(e.widget.getData() == AllNoneGroup.ALL);
            updateButtons();
        }
    });
    button = new Button(buttonArea1, SWT.PUSH);
    button.setText(Messages.CategorizeDialog_select_unpaired);
    button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Token[] tokens = (Token[]) proposalViewer1.getInput();
            for (Token tok : tokens)
                proposalViewer1.setChecked(tok, tok.getMatch() == UNCHECKED);
        }
    });
    Label keyLabel = new Label(splitComp, SWT.NONE);
    keyLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true, 2, 1));
    keyLabel.setFont(JFaceResources.getBannerFont());
    keyLabel.setText(Messages.CategorizeDialog_proposed_as_keywords);
    proposalViewer2 = CheckboxTableViewer.newCheckList(splitComp, SWT.V_SCROLL);
    layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.widthHint = 200;
    layoutData.heightHint = 300;
    proposalViewer2.getTable().setLayoutData(layoutData);
    proposalViewer2.setLabelProvider(new ColumnLabelProvider());
    proposalViewer2.setContentProvider(ArrayContentProvider.getInstance());
    proposalViewer2.addSelectionChangedListener(selectionChangedListener);

    Composite buttonArea2 = new Composite(splitComp, SWT.NONE);
    buttonArea2.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false));
    buttonArea2.setLayout(new GridLayout(1, false));
    new AllNoneGroup(buttonArea2, new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            proposalViewer2.setAllChecked(e.widget.getData() == AllNoneGroup.ALL);
            updateButtons();
        }
    });
    // Messages
    msgComp = new Composite(stack, SWT.NONE);
    msgComp.setLayout(new GridLayout(1, false));
    msgLabel = new Label(msgComp, SWT.CENTER | SWT.WRAP);
    GridData ldata = new GridData(SWT.FILL, SWT.CENTER, true, true);
    ldata.heightHint = 30;
    msgLabel.setLayoutData(ldata);

    CLink aiLink = new CLink(proposalArea, SWT.NONE);
    aiLink.setText(Messages.CategorizeDialog_configure);
    aiLink.setToolTipText(Messages.CategorizeDialog_user_preferences);
    aiLink.addListener(new Listener() {
        @Override
        public void handleEvent(Event event) {
            if (aiService != null) {
                boolean wasEnabled = aiService.isEnabled();
                if (wasEnabled)
                    Job.getJobManager().cancel(this);
                if (aiService.configure(getShell())) {
                    boolean enabled = aiService.isEnabled();
                    setProposalTitel();
                    List<Asset> reordered;
                    int p = assets.indexOf(currentAsset);
                    reordered = p > 0 ? assets.subList(p, assets.size()) : assets;
                    for (Asset asset : reordered)
                        predictions.remove(asset.getStringId());
                    fillValues(false);
                    // TODO could be improved when language can be
                    // controlled through API
                    if (enabled)
                        startPredictionJob(reordered);
                }
            }
        }
    });
}

From source file:com.bdaum.zoom.ui.internal.dialogs.CodesDialog.java

License:Open Source License

private void createTableColumn(TableViewer tableViewer, int width, String text, int index) {
    TableViewerColumn col = new TableViewerColumn(tableViewer, SWT.NONE);
    col.getColumn().setWidth(width);//from w  w  w  .j  a v a2s .c o m
    col.getColumn().setText(text);
    col.setLabelProvider(new TopicLabelProvider(index));
}

From source file:com.bdaum.zoom.ui.internal.dialogs.EditMetaDialog.java

License:Open Source License

private TableViewerColumn createColumn(String lab, int w) {
    TableViewerColumn col = new TableViewerColumn(watchedFolderViewer, SWT.NONE);
    col.getColumn().setText(lab);//  w  w w  . j  av  a 2 s .c  om
    col.getColumn().setWidth(w);
    return col;
}

From source file:com.bdaum.zoom.ui.internal.dialogs.EditMetaDialog.java

License:Open Source License

@SuppressWarnings("unused")
private void createKeywordsGroup(final CTabFolder folder) {
    final Composite kwComp = createTabPage(folder, Messages.EditMetaDialog_keywords,
            Messages.EditMetaDialog_keyword_tooltip, 2, 0);
    CGroup kwGroup = new CGroup(kwComp, SWT.NONE);
    kwGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    kwGroup.setLayout(new GridLayout(2, false));
    kwGroup.setText(Messages.EditMetaDialog_cat_keywords);
    Label catKwLabel = new Label(kwGroup, SWT.NONE);
    catKwLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    catKwLabel.setFont(JFaceResources.getFontRegistry().get(UiConstants.SELECTIONFONT));
    flatKeywordGroup = new FlatGroup(kwGroup, SWT.NONE, settings, "hierarchicalKeywords"); //$NON-NLS-1$
    flatKeywordGroup.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, false));
    flatKeywordGroup.addListener(new Listener() {
        @Override/*ww  w  . j a v  a2  s  . c  o m*/
        public void handleEvent(Event event) {
            keywordViewer.setInput(keywords);
            keywordViewer.expandAll();
            keywordExpandCollapseGroup.setVisible(!flatKeywordGroup.isFlat());
        }
    });
    Composite viewerGroup = new Composite(kwGroup, SWT.NONE);
    viewerGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    GridLayout layout = new GridLayout(2, false);
    layout.marginHeight = layout.marginWidth = 0;
    viewerGroup.setLayout(layout);
    final FilterField filterField = new FilterField(viewerGroup);
    filterField.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            keywordViewer.setInput(keywords);
            keywordViewer.expandAll();
        }
    });
    final CheckboxButton excludeButton = WidgetFactory.createCheckButton(viewerGroup,
            Messages.KeywordGroup_exclude_geographic, new GridData(SWT.END, SWT.CENTER, true, false));
    excludeButton.addListener(new Listener() {

        @Override
        public void handleEvent(Event event) {
            excludeGeographic = excludeButton.getSelection();
            Object[] expandedElements = keywordViewer.getExpandedElements();
            keywordViewer.setInput(keywords);
            keywordViewer.setExpandedElements(expandedElements);
        }
    });
    keywordExpandCollapseGroup = new ExpandCollapseGroup(viewerGroup, SWT.NONE,
            new GridData(SWT.END, SWT.BEGINNING, true, false, 2, 1));
    keywordViewer = new TreeViewer(viewerGroup, SWT.V_SCROLL | SWT.BORDER);
    keywordExpandCollapseGroup.setViewer(keywordViewer);
    keywordExpandCollapseGroup.setVisible(!flatKeywordGroup.isFlat());
    setViewerLayout(keywordViewer, 220, 2);
    keywordViewer.setContentProvider(new KeywordContentProvider());
    keywordViewer.setLabelProvider(new KeywordLabelProvider(getVocabManager(), null));
    ZColumnViewerToolTipSupport.enableFor(keywordViewer);
    keywordViewer.setComparator(ZViewerComparator.INSTANCE);
    UiUtilities.installDoubleClickExpansion(keywordViewer);
    keywordViewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
        @Override
        public boolean select(Viewer aViewer, Object parentElement, Object element) {
            WildCardFilter filter = filterField.getFilter();
            return filter == null || element instanceof Character || filter.accept((String) element);
        }
    } });
    keywordViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    });
    configureKeywordLink = new CLink(viewerGroup, SWT.NONE);
    configureKeywordLink.setText(Messages.EditMetaDialog_configure_keyword_filter);
    configureKeywordLink.addListener(new Listener() {
        @Override
        public void handleEvent(Event event) {
            PreferencesUtil.createPreferenceDialogOn(getShell(), KeyPreferencePage.ID, new String[0], null)
                    .open();
        }
    });
    final Composite buttonGroup = new Composite(kwGroup, SWT.NONE);
    buttonGroup.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
    buttonGroup.setLayout(new GridLayout());

    keywordAddButton = createPushButton(buttonGroup, Messages.EditMetaDialog_add,
            Messages.EditMetaDialog_add_keyword_tooltip);
    keywordAddButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            ZInputDialog dialog = createKeywordDialog(Messages.EditMetaDialog_add_keyword,
                    Messages.EditMetaDialog_enter_a_new_keyword, ""); //$NON-NLS-1$
            if (dialog.open() == Window.OK)
                addKeywordToViewer(keywordViewer, dialog.getValue(), true);
        }
    });
    keywordModifyButton = createPushButton(buttonGroup, Messages.EditMetaDialog_edit,
            Messages.EditMetaDialog_modify_keyword_tooltip);
    keywordModifyButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            editKeyword();
        }
    });
    keywordViewer.getControl().addKeyListener(keyListener);
    keywordViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(final SelectionChangedEvent event) {
            updateButtons();
            if (cntrlDwn) {
                if (keywordModifyButton.isEnabled())
                    editKeyword();
                cntrlDwn = false;
            }
        }
    });
    keywordReplaceButton = createPushButton(buttonGroup, Messages.EditMetaDialog_replace,
            Messages.EditMetaDialog_replace_tooltip);
    keywordReplaceButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            String kw = (String) ((IStructuredSelection) keywordViewer.getSelection()).getFirstElement();
            if (kw != null) {
                KeywordDialog dialog = new KeywordDialog(getShell(),
                        NLS.bind(Messages.EditMetaDialog_replace_keyword, kw), null, keywords, null);
                if (dialog.open() == Window.OK) {
                    BagChange<String> result = dialog.getResult();
                    boolean found = false;
                    Set<String> added = result.getAdded();
                    if (added != null)
                        for (String s : added)
                            if (kw.equals(s)) {
                                found = true;
                                break;
                            }
                    if (!found)
                        removeKeywordFromViewer(keywordViewer, kw);
                    Set<String> addedKeywords = result.getAdded();
                    String[] replacement = addedKeywords.toArray(new String[addedKeywords.size()]);
                    int i = 0;
                    for (String k : replacement)
                        addKeywordToViewer(keywordViewer, k, i++ == 0);
                    todo.add(new ReplaceKeywordOperation(kw, replacement));
                }
            }
        }
    });
    keywordDeleteButton = createPushButton(buttonGroup, Messages.EditMetaDialog_delete_keyword,
            Messages.EditMetaDialog_delete_keyword_tooltip);
    keywordDeleteButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            BusyIndicator.showWhile(keywordDeleteButton.getDisplay(), () -> {
                IStructuredSelection selection = (IStructuredSelection) keywordViewer.getSelection();
                String kw = (String) selection.getFirstElement();
                if (kw != null) {
                    List<AssetImpl> set = dbManager.obtainObjects(AssetImpl.class,
                            QueryField.IPTC_KEYWORDS.getKey(), kw, QueryField.EQUALS);
                    removeKeywordFromViewer(keywordViewer, kw);
                    if (!set.isEmpty()) {
                        KeywordDeleteDialog dialog = new KeywordDeleteDialog(getShell(), kw, set);
                        if (dialog.open() != Window.OK) {
                            keywords.add(kw);
                            return;
                        }
                        if (dialog.getPolicy() == KeywordDeleteDialog.REMOVE)
                            todo.add(new ManageKeywordsOperation(
                                    new BagChange<String>(null, null, Collections.singleton(kw), null), set));
                    }
                }
            });
        }
    });
    keywordShowButton = createPushButton(buttonGroup, Messages.EditMetaDialog_show_images,
            Messages.EditMetaDialog_show_keyword_tooltip);
    keywordShowButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) keywordViewer.getSelection();
            String kw = (String) selection.getFirstElement();
            if (kw != null) {
                SmartCollectionImpl sm = new SmartCollectionImpl(kw, false, false, true, false, null, 0, null,
                        0, null, Constants.INHERIT_LABEL, null, 0, null);
                sm.addCriterion(new CriterionImpl(QueryField.IPTC_KEYWORDS.getKey(), null, kw,
                        QueryField.EQUALS, false));
                sm.addSortCriterion(new SortCriterionImpl(QueryField.IPTC_DATECREATED.getKey(), null, true));
                Ui.getUi().getNavigationHistory(workbenchPage.getWorkbenchWindow())
                        .postSelection(new StructuredSelection(sm));
                close();
            }
        }
    });
    new Label(buttonGroup, SWT.SEPARATOR | SWT.HORIZONTAL);

    keywordCollectButton = createPushButton(buttonGroup, Messages.EditMetaDialog_collect,
            Messages.EditMetaDialog_collect_keyword_tooltip);
    keywordCollectButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            KeywordCollectDialog dialog = new KeywordCollectDialog(getShell(), keywords);
            if (dialog.open() == Window.OK) {
                int i = 0;
                for (String kw : dialog.getToAdd())
                    addKeywordToViewer(keywordViewer, kw, i++ == 0);
                for (String kw : dialog.getToRemove())
                    removeKeywordFromViewer(keywordViewer, kw);
            }
        }
    });

    keywordLoadButton = createPushButton(buttonGroup, Messages.EditMetaDialog_load,
            NLS.bind(Messages.EditMetaDialog_load_keyword_tooltip, Constants.KEYWORDFILEEXTENSION));
    keywordLoadButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent ev) {
            FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
            dialog.setFilterExtensions(KEYWORDEXTENSIONS);
            dialog.setFilterNames(
                    new String[] {
                            Constants.APPNAME + Messages.EditMetaDialog_zoom_keyword_file
                                    + Constants.KEYWORDFILEEXTENSION + ')',
                            Messages.EditMetaDialog_all_files });
            String filename = dialog.open();
            if (filename != null) {
                try (InputStream in = new BufferedInputStream(new FileInputStream(filename))) {
                    List<String> list = Utilities.loadKeywords(in);
                    keywords.clear();
                    keywords.addAll(list);
                } catch (IOException e) {
                    // ignore
                }
                keywordViewer.setInput(keywords);
                keywordViewer.expandAll();
            }
        }
    });
    keywordSaveButton = createPushButton(buttonGroup, Messages.EditMetaDialog_save,
            NLS.bind(Messages.EditMetaDialog_save_keyword_tooltip, Constants.KEYWORDFILEEXTENSION));
    keywordSaveButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            FileDialog dialog = new FileDialog(getShell(), SWT.SAVE);
            dialog.setFilterExtensions(KEYWORDEXTENSIONS);
            dialog.setFilterNames(
                    new String[] {
                            Constants.APPNAME + Messages.EditMetaDialog_zoom_keyword_file
                                    + Constants.KEYWORDFILEEXTENSION + ")", //$NON-NLS-1$
                            Messages.EditMetaDialog_all_files });
            dialog.setFileName("*" + Constants.KEYWORDFILEEXTENSION); //$NON-NLS-1$
            dialog.setOverwrite(true);
            String filename = dialog.open();
            if (filename != null)
                Utilities.saveKeywords(keywords, new File(filename));
        }
    });
    addToKeywordsButton = WidgetFactory.createCheckButton(kwGroup, Messages.EditMetaDialog_add_to_keywords,
            new GridData(SWT.BEGINNING, SWT.END, true, false, 2, 1));
    CGroup vocabGroup = new CGroup(kwComp, SWT.NONE);
    vocabGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    vocabGroup.setLayout(new GridLayout(2, false));
    vocabGroup.setText(Messages.EditMetaDialog_controlled_vocabs);
    Composite vocabViewerGroup = new Composite(vocabGroup, SWT.NONE);
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.verticalIndent = 20;
    vocabViewerGroup.setLayoutData(layoutData);
    vocabViewerGroup.setLayout(new GridLayout(2, false));

    vocabViewer = new TableViewer(vocabViewerGroup, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    setViewerLayout(vocabViewer, 150, 1);
    TableViewerColumn col1 = new TableViewerColumn(vocabViewer, SWT.NONE);
    col1.getColumn().setWidth(300);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return element.toString();
        }

        @Override
        public Image getImage(Object element) {
            if (element instanceof String && !new File((String) element).exists())
                return Icons.error.getImage();
            return null;
        }

        @Override
        public String getToolTipText(Object element) {
            if (element instanceof String && UiActivator.getDefault().getShowHover()) {
                File file = new File((String) element);
                if (!file.exists())
                    return Messages.EditMetaDialog_file_does_not_exist;
            }
            return super.getToolTipText(element);
        }

        @Override
        public Image getToolTipImage(Object element) {
            return getImage(element);
        }
    });
    vocabViewer.setContentProvider(ArrayContentProvider.getInstance());
    vocabViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    });
    vocabViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            viewVocab();
        }
    });
    ColumnViewerToolTipSupport.enableFor(vocabViewer);
    Composite vocabButtonGroup = new Composite(vocabViewerGroup, SWT.NONE);
    vocabButtonGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    vocabButtonGroup.setLayout(new GridLayout());
    vocabAddButton = createPushButton(vocabButtonGroup, Messages.EditMetaDialog_add,
            Messages.EditMetaDialog_add_vocab);
    vocabAddButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
            dialog.setText(Messages.EditMetaDialog_select_vocab);
            dialog.setFilterExtensions(KEYWORDEXTENSIONS);
            dialog.setFilterNames(
                    new String[] {
                            Constants.APPNAME + Messages.EditMetaDialog_zoom_keyword_file
                                    + Constants.KEYWORDFILEEXTENSION + ')',
                            Messages.EditMetaDialog_all_files });
            String file = dialog.open();
            if (file != null) {
                boolean found = false;
                for (String s : vocabularies)
                    if (s.equals(file)) {
                        found = true;
                        break;
                    }
                if (!found) {
                    vocabularies.add(file);
                    vocabViewer.add(file);
                }
                vocabViewer.setSelection(new StructuredSelection(file), true);
                if (vocabManager != null)
                    vocabManager.reset(vocabularies);
                updateKeywordViewer();
            }
        }
    });
    vocabRemoveButton = createPushButton(vocabButtonGroup, Messages.EditMetaDialog_remove,
            Messages.EditMetaDialog_remove_vocab);
    vocabRemoveButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            @SuppressWarnings("unchecked")
            Iterator<Object> it = vocabViewer.getStructuredSelection().iterator();
            while (it.hasNext()) {
                Object file = it.next();
                vocabularies.remove(file);
                vocabViewer.remove(file);
            }
            if (vocabManager != null)
                vocabManager.reset(vocabularies);
            updateKeywordViewer();
        }
    });
    vocabViewButton = createPushButton(vocabButtonGroup, Messages.EditMetaDialog_view_vocab,
            Messages.EditMetaDialog_view_vocab_tooltip);
    vocabViewButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            viewVocab();
        }
    });
    new Label(vocabButtonGroup, SWT.SEPARATOR | SWT.HORIZONTAL);
    vocabEnforceButton = createPushButton(vocabButtonGroup, Messages.EditMetaDialog_enforce,
            Messages.EditMetaDialog_enforce_tooltip);
    vocabEnforceButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            List<String[]> changes = new ArrayList<>();
            VocabManager vManager = getVocabManager();
            for (String kw : keywords) {
                String mapped = vManager.getVocab(kw);
                if (!kw.equals(mapped))
                    changes.add(new String[] { kw, mapped });
            }
            VocabEnforceDialog dialog = new VocabEnforceDialog(getShell(), changes);
            if (dialog.open() == VocabEnforceDialog.OK) {
                BusyIndicator.showWhile(getShell().getDisplay(), () -> {
                    int policy = dialog.getPolicy();
                    for (String[] change : dialog.getChanges()) {
                        String kw = change[0];
                        keywords.remove(kw);
                        if (change[1] != null) {
                            keywords.add(change[1]);
                            if (policy == KeywordDeleteDialog.REMOVE)
                                todo.add(new ReplaceKeywordOperation(kw, new String[] { change[1] }));
                        } else if (policy == KeywordDeleteDialog.REMOVE)
                            todo.add(new ManageKeywordsOperation(
                                    new BagChange<String>(null, null, Collections.singleton(kw), change),
                                    null));
                        updateKeywordViewer();
                    }

                });
            }
        }
    });
}

From source file:com.bdaum.zoom.ui.internal.dialogs.EditStructDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);
    Composite comp = new Composite(area, SWT.NONE);
    comp.setLayoutData(new GridData(GridData.FILL_BOTH));
    comp.setLayout(new GridLayout());
    viewer = new TableViewer(parent,
            SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    Table table = viewer.getTable();/*from w ww. j  a  va 2 s.  co  m*/
    table.setLayoutData(new GridData(GridData.FILL_BOTH));
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE);
    col1.getColumn().setWidth(200);
    col1.getColumn().setText(Messages.EditStructDialog_name);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof QueryField) {
                QueryField qf = (QueryField) element;
                return !readonly && qf.isEditable((Asset) null) ? Format.EDITABLEINDICATOR + qf.getLabel()
                        : qf.getLabel(); // $NON-NLS-1$
            }
            return null;
        }
    });
    TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE);
    col2.getColumn().setWidth(400);
    col2.getColumn().setText(Messages.EditStructDialog_value);
    col2.setLabelProvider(new ValueColumnLabelProvider());
    col2.setEditingSupport(new ViewEditingSupport(viewer));
    viewer.setContentProvider(new ViewContentProvider());
    // viewer.setComparator(new ViewComparator());
    if (fields != null)
        viewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
            @Override
            public boolean select(Viewer viewer, Object parentElement, Object element) {
                for (QueryField qfield : fields) {
                    if (qfield == element)
                        return true;
                }
                return false;
            }
        } });
    viewer.setInput(qfield);
    return area;
}

From source file:com.bdaum.zoom.ui.internal.dialogs.MediaDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);
    Composite composite = new Composite(area, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    composite.setLayout(new GridLayout(1, false));
    viewer = new TableViewer(composite, SWT.FULL_SELECTION | SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);
    viewer.getTable().setLayoutData(new GridData(780, 250));
    TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE);
    col1.getColumn().setWidth(180);//  ww  w  .  j  ava2s.c o m
    col1.getColumn().setText(Messages.MediaDialog_volume_name);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof LastDeviceImport)
                return ((LastDeviceImport) element).getVolume();
            return element.toString();
        }
    });
    TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE);
    col2.getColumn().setWidth(140);
    col2.getColumn().setText(Messages.MediaDialog_owner);
    col2.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof LastDeviceImport)
                return ((LastDeviceImport) element).getOwner();
            return element.toString();
        }
    });
    col2.setEditingSupport(new EditingSupport(viewer) {
        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof LastDeviceImport && value instanceof String) {
                ((LastDeviceImport) element).setOwner((String) value);
                viewer.update(element, null);
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof LastDeviceImport)
                return ((LastDeviceImport) element).getOwner();
            return ""; //$NON-NLS-1$
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new TextCellEditor(viewer.getTable());
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }
    });
    TableViewerColumn col3 = new TableViewerColumn(viewer, SWT.NONE);
    col3.getColumn().setWidth(140);
    col3.getColumn().setText(Messages.MediaDialog_last_import);
    col3.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof LastDeviceImport) {
                long timestamp = ((LastDeviceImport) element).getTimestamp();
                return timestamp == 0L ? " - " : sdf.format(new Date(timestamp)); //$NON-NLS-1$
            }
            return element.toString();
        }
    });
    col3.setEditingSupport(new EditingSupport(viewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof LastDeviceImport && value instanceof String) {
                try {
                    ((LastDeviceImport) element).setTimestamp(sdf.parse((String) value).getTime());
                    viewer.update(element, null);
                } catch (ParseException e) {
                    // do nothing
                }
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof LastDeviceImport)
                return sdf.format(new Date(((LastDeviceImport) element).getTimestamp()));
            return ""; //$NON-NLS-1$
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            TextCellEditor editor = new TextCellEditor(viewer.getTable());
            editor.setValidator(new ICellEditorValidator() {
                public String isValid(Object value) {
                    if (value instanceof String) {
                        try {
                            sdf.parse((String) value);
                            setErrorMessage(null);
                        } catch (ParseException e) {
                            String errorMessage = NLS.bind(Messages.MediaDialog_bad_date_format,
                                    Messages.MediaDialog_import_date_mask);
                            setErrorMessage(errorMessage);
                            return errorMessage;
                        }
                    }
                    return null;
                }
            });
            return editor;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }
    });
    TableViewerColumn col4 = new TableViewerColumn(viewer, SWT.NONE);
    col4.getColumn().setWidth(300);
    col4.getColumn().setText(Messages.MediaDialog_comments);
    col4.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof LastDeviceImport)
                return ((LastDeviceImport) element).getDescription();
            return element.toString();
        }
    });
    col4.setEditingSupport(new EditingSupport(viewer) {
        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof LastDeviceImport && value instanceof String) {
                ((LastDeviceImport) element).setDescription((String) value);
                viewer.update(element, null);
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof LastDeviceImport)
                return ((LastDeviceImport) element).getDescription();
            return ""; //$NON-NLS-1$
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new TextCellEditor(viewer.getTable());
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }
    });
    viewer.setContentProvider(ArrayContentProvider.getInstance());
    viewer.setComparator(ZViewerComparator.INSTANCE);
    viewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof LastDeviceImport) {
                String volume = ((LastDeviceImport) element).getVolume();
                return volume.indexOf('/') < 0 && volume.indexOf('\\') < 0;
            }
            return false;
        }
    } });
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    });
    return area;
}

From source file:com.bdaum.zoom.ui.internal.dialogs.MigrateDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);
    Composite composite = new Composite(area, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    composite.setLayout(new GridLayout(1, false));
    CGroup fileGroup = new CGroup(composite, SWT.NONE);
    fileGroup.setText(Messages.MigrateDialog_save_as);
    fileGroup.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, true));
    fileGroup.setLayout(new GridLayout());
    String filename = catFile.getName();
    String migrated = "migrated_" + filename; //$NON-NLS-1$
    String parentFile = catFile.getParent();
    File migratedFile = new File(parentFile, migrated);
    fileEditor = new FileEditor(fileGroup, SWT.SAVE, "", false, //$NON-NLS-1$
            new String[] { "*" + BatchConstants.CATEXTENSION }, //$NON-NLS-1$
            new String[] { "ZoRaPD Catalog (*" //$NON-NLS-1$
                    + BatchConstants.CATEXTENSION + ")" }, //$NON-NLS-1$
            parentFile, migratedFile.getPath(), false, getDialogSettings(UiActivator.getDefault(), SETTINGSID));
    CGroup tableGroup = new CGroup(composite, SWT.NONE);
    tableGroup.setText(Messages.MigrateDialog_transformation);
    tableGroup.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, true));
    tableGroup.setLayout(new GridLayout());
    new Label(tableGroup, SWT.NONE).setText(Messages.MigrateDialog_file_separator_policy);
    fileSeparatorCombo = new Combo(tableGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
    fileSeparatorCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    fileSeparatorCombo.setItems(new String[] { Messages.MigrateDialog_do_nothing,
            Messages.MigrateDialog_toSlash, Messages.MigrateDialog_toBackslash });
    fileSeparatorCombo.select(fileSepearatorPolicy);
    new Label(tableGroup, SWT.NONE).setText(Messages.MigrateDialog_rules);
    new Label(tableGroup, SWT.NONE).setText(Messages.MigrateDialog_rules_explanation);
    Composite tableComp = new Composite(tableGroup, SWT.NONE);
    tableComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    GridLayout layout = new GridLayout(2, false);
    layout.horizontalSpacing = layout.verticalSpacing = 0;
    tableComp.setLayout(layout);/* w  w  w  .j a va2  s. com*/
    viewer = new TableViewer(tableComp, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.heightHint = 300;
    viewer.getTable().setLayoutData(layoutData);
    final TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE);
    col1.getColumn().setWidth(350);
    col1.getColumn().setText(Messages.MigrateDialog_source_pattern);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof MigrationRule)
                return ((MigrationRule) element).getSourcePattern();
            return element.toString();
        }
    });
    final TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE);
    col2.getColumn().setWidth(220);
    col2.getColumn().setText(Messages.MigrateDialog_target_pattern);
    col2.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof MigrationRule)
                return ((MigrationRule) element).getTargetPattern();
            return super.getText(element);
        }
    });
    final TableViewerColumn col3 = new TableViewerColumn(viewer, SWT.NONE);
    col3.getColumn().setWidth(100);
    col3.getColumn().setText(Messages.MigrateDialog_target_volume);
    col3.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof MigrationRule)
                return ((MigrationRule) element).getTargetVolume();
            return element.toString();
        }
    });
    viewer.setContentProvider(ArrayContentProvider.getInstance());
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    });
    Composite buttonComp = new Composite(tableComp, SWT.NONE);
    buttonComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    buttonComp.setLayout(new GridLayout(1, false));
    Button addPatternButton = new Button(buttonComp, SWT.PUSH);
    addPatternButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addPatternButton.setText(Messages.MigrateDialog_add_pattern);
    addPatternButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            RegExDialog dialog = new RegExDialog(getShell(), null, null, false,
                    fileSeparatorCombo.getSelectionIndex(), -1);
            if (dialog.open() == RegExDialog.OK) {
                MigrationRule result = dialog.getResult();
                rules.add(result);
                viewer.add(result);
                viewer.setSelection(new StructuredSelection(result));
                updateButtons();
                dirty = true;
            }
        }
    });
    Button addFolderButton = new Button(buttonComp, SWT.PUSH);
    addFolderButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            DirectoryDialog dirDialog = new DirectoryDialog(getShell());
            dirDialog.setText(Messages.MigrateDialog_select_folder);
            String dir = dirDialog.open();
            if (dir != null) {
                if (!dir.endsWith(File.separator))
                    dir += File.separator;
                if (Constants.WIN32) {
                    int i = dir.indexOf(':');
                    if (i == 1) {
                        String volume = Core.getCore().getVolumeManager().getVolumeForFile(new File(dir));
                        if (volume != null)
                            dir = volume + dir.substring(1);
                    }
                }
                char filesep;
                fileSepearatorPolicy = fileSeparatorCombo.getSelectionIndex();
                switch (fileSepearatorPolicy) {
                case 1:
                    filesep = '/';
                    break;
                case 2:
                    filesep = '\\';
                    break;
                default:
                    filesep = File.separatorChar;
                    break;
                }
                String sourcePattern = dir + "(.*)"; //$NON-NLS-1$
                MigrationRule rule = new MigrationRuleImpl(sourcePattern.replaceAll("\\\\", "\\\\\\\\"), //$NON-NLS-1$ //$NON-NLS-2$
                        Messages.MigrateDialog_target_folder + filesep + "$1", null); //$NON-NLS-1$
                RegExDialog regexDialog = new RegExDialog(getShell(), rule, dir, true, fileSepearatorPolicy,
                        Messages.MigrateDialog_target_folder.length());
                if (regexDialog.open() == RegExDialog.OK) {
                    MigrationRule result = regexDialog.getResult();
                    rules.add(result);
                    viewer.add(result);
                    viewer.setSelection(new StructuredSelection(result));
                    updateButtons();
                    dirty = true;
                }
            }
        }
    });
    addFolderButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addFolderButton.setText(Messages.MigrateDialog_add_folder);
    editPatternButton = new Button(buttonComp, SWT.PUSH);
    editPatternButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    editPatternButton.setText(Messages.MigrateDialog_edit_pattern);
    editPatternButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            MigrationRule policy = (MigrationRule) viewer.getStructuredSelection().getFirstElement();
            RegExDialog regexDialog = new RegExDialog(getShell(), policy, null, false,
                    fileSeparatorCombo.getSelectionIndex(), -1);
            if (regexDialog.open() == RegExDialog.OK) {
                MigrationRule result = regexDialog.getResult();
                policy.setSourcePattern(result.getSourcePattern());
                policy.setTargetPattern(result.getTargetPattern());
                viewer.update(policy, null);
                updateButtons();
                dirty = true;
            }
        }
    });
    removePatternButton = new Button(buttonComp, SWT.PUSH);
    removePatternButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    removePatternButton.setText(Messages.MigrateDialog_remove_pattern);
    removePatternButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Object policy = viewer.getStructuredSelection().getFirstElement();
            rules.remove(policy);
            viewer.remove(policy);
            updateButtons();
            dirty = true;
        }
    });
    Label sep = new Label(buttonComp, SWT.SEPARATOR | SWT.HORIZONTAL);
    sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    upButton = new Button(buttonComp, SWT.PUSH);
    upButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    upButton.setText(Messages.MigrateDialog_up);
    upButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            MigrationRule policy = (MigrationRule) viewer.getStructuredSelection().getFirstElement();
            int i = rules.indexOf(policy);
            if (i > 0) {
                rules.remove(i);
                rules.add(i - 1, policy);
                viewer.setInput(rules);
                viewer.setSelection(new StructuredSelection(policy));
                updateButtons();
            }
        }
    });
    downButton = new Button(buttonComp, SWT.PUSH);
    downButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    downButton.setText(Messages.MigrateDialog_down);
    downButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            MigrationRule policy = (MigrationRule) viewer.getStructuredSelection().getFirstElement();
            int i = rules.indexOf(policy);
            if (i < rules.size() - 1) {
                rules.remove(i);
                rules.add(i + 1, policy);
                viewer.setInput(rules);
                viewer.setSelection(new StructuredSelection(policy));
                updateButtons();
            }
        }
    });
    return area;
}

From source file:com.bdaum.zoom.ui.internal.dialogs.PurgeEmptyDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);
    Composite composite = new Composite(area, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    composite.setLayout(new GridLayout());
    viewer = new TableViewer(composite, SWT.BORDER | SWT.V_SCROLL);
    viewer.getTable().setLayoutData(new GridData(350, 500));
    viewer.getTable().setLinesVisible(true);
    viewer.setContentProvider(ArrayContentProvider.getInstance());
    TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE);
    col1.getColumn().setWidth(250);/* www.  ja  va 2 s. co  m*/
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof SmartCollection)
                return ((SmartCollection) element).getName();
            return super.getText(element);
        }
    });
    TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE);
    col2.getColumn().setWidth(250);
    col2.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof SmartCollection) {
                if (element == pending)
                    return Messages.PurgeEmptyDialog_analyzing;
                if (allDeleted.contains(((SmartCollection) element).getStringId()))
                    return Messages.PurgeEmptyDialog_deleted;
                if (kept.contains(((SmartCollection) element).getStringId()))
                    return Messages.PurgeEmptyDialog_kept;
                return ""; //$NON-NLS-1$
            }
            return super.getText(element);
        }

        @Override
        protected Font getFont(Object element) {
            if (allDeleted.contains(((SmartCollection) element).getStringId()))
                return JFaceResources.getFont(UiConstants.SELECTIONFONT);
            return super.getFont(element);
        }
    });
    viewer.setInput(collections);
    return area;
}