List of usage examples for org.eclipse.jface.databinding.viewers ObservableListContentProvider ObservableListContentProvider
public ObservableListContentProvider()
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.ControlFactory.java
License:Open Source License
public static void createStringListWidget(Composite parent, Messages Messages, final AbstractComponentEditor editor, String label, String tooltip, final EStructuralFeature feature, int vIndent) { Label l = new Label(parent, SWT.NONE); l.setText(label);/* ww w. j av a2 s . com*/ if (tooltip != null) { l.setToolTipText(tooltip); } GridData gd = new GridData(GridData.END, GridData.BEGINNING, false, false); gd.verticalIndent = vIndent; l.setLayoutData(gd); final Text t = new Text(parent, SWT.BORDER); gd = new GridData(GridData.FILL, GridData.BEGINNING, true, false); gd.verticalIndent = vIndent; t.setLayoutData(gd); t.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.CR || e.keyCode == SWT.LF) { handleAddText(editor, feature, t); } } }); TextPasteHandler.createFor(t); final Button btnAdd = new Button(parent, SWT.PUSH | SWT.FLAT); btnAdd.setText(Messages.ModelTooling_Common_Add); btnAdd.setImage(editor.createImage(ResourceProvider.IMG_Obj16_table_add)); gd = new GridData(GridData.FILL, GridData.CENTER, false, false); gd.verticalIndent = vIndent; btnAdd.setLayoutData(gd); btnAdd.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { handleAddText(editor, feature, t); } }); new Label(parent, SWT.NONE); final TableViewer viewer = new TableViewer(parent); viewer.setLabelProvider(new LabelProvider()); viewer.setContentProvider(new ObservableListContentProvider()); gd = new GridData(GridData.FILL_HORIZONTAL); gd.heightHint = 150; viewer.getControl().setLayoutData(gd); IEMFListProperty prop = EMFProperties.list(feature); viewer.setInput(prop.observeDetail(editor.getMaster())); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { String strSelected = (String) ((StructuredSelection) event.getSelection()).getFirstElement(); t.setText(strSelected != null ? strSelected : ""); //$NON-NLS-1$ } }); Composite compButton = new Composite(parent, SWT.NONE); compButton.setLayoutData(new GridData(GridData.FILL, GridData.END, false, false)); GridLayout gl = new GridLayout(); gl.marginLeft = 0; gl.marginRight = 0; gl.marginWidth = 0; gl.marginHeight = 0; compButton.setLayout(gl); final Button btnReplace = new Button(compButton, SWT.PUSH | SWT.FLAT); // TODO need to add icon for replace btnReplace.setText(Messages.ModelTooling_Common_Replace); btnReplace.setImage(editor.createImage(ResourceProvider.IMG_Obj16_table_add)); gd = new GridData(GridData.FILL, GridData.CENTER, false, false); gd.verticalIndent = vIndent; btnReplace.setLayoutData(gd); btnReplace.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { handleReplaceText(editor, feature, t, viewer); } }); final Button btnUp = new Button(compButton, SWT.PUSH | SWT.FLAT); btnUp.setText(Messages.ModelTooling_Common_Up); btnUp.setImage(editor.createImage(ResourceProvider.IMG_Obj16_arrow_up)); btnUp.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); btnUp.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); EObject container = (EObject) editor.getMaster().getValue(); List<?> l = (List<?>) container.eGet(feature); int idx = l.indexOf(obj) - 1; if (idx >= 0) { Command cmd = MoveCommand.create(editor.getEditingDomain(), editor.getMaster().getValue(), feature, obj, idx); if (cmd.canExecute()) { editor.getEditingDomain().getCommandStack().execute(cmd); viewer.setSelection(new StructuredSelection(obj)); } } } } } }); final Button btnDown = new Button(compButton, SWT.PUSH | SWT.FLAT); btnDown.setText(Messages.ModelTooling_Common_Down); btnDown.setImage(editor.createImage(ResourceProvider.IMG_Obj16_arrow_down)); btnDown.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); btnDown.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); EObject container = (EObject) editor.getMaster().getValue(); List<?> l = (List<?>) container.eGet(feature); int idx = l.indexOf(obj) + 1; if (idx < l.size()) { Command cmd = MoveCommand.create(editor.getEditingDomain(), editor.getMaster().getValue(), feature, obj, idx); if (cmd.canExecute()) { editor.getEditingDomain().getCommandStack().execute(cmd); viewer.setSelection(new StructuredSelection(obj)); } } } } } }); final Button btnDelete = new Button(compButton, SWT.PUSH | SWT.FLAT); btnDelete.setText(Messages.ModelTooling_Common_Remove); btnDelete.setImage(editor.createImage(ResourceProvider.IMG_Obj16_table_delete)); btnDelete.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); btnDelete.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { EObject el = (EObject) editor.getMaster().getValue(); List<?> ids = ((IStructuredSelection) viewer.getSelection()).toList(); Command cmd = RemoveCommand.create(editor.getEditingDomain(), el, feature, ids); if (cmd.canExecute()) { editor.getEditingDomain().getCommandStack().execute(cmd); if (ids.size() > 0) { viewer.setSelection(new StructuredSelection(ids.get(0))); } } } } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { updateUiState(viewer, t, btnAdd, btnReplace, btnDelete, btnDown, btnUp); } }); t.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { updateUiState(viewer, t, btnAdd, btnReplace, btnDelete, btnDown, btnUp); } }); updateUiState(viewer, t, btnAdd, btnReplace, btnDelete, btnDown, btnUp); }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.AbstractIconDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); getShell().setText(getShellTitle()); setTitle(getDialogTitle());// w w w. ja v a2 s . co m setMessage(getDialogMessage()); Composite container = new Composite(comp, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); container.setLayout(new GridLayout(2, false)); Label l = new Label(container, SWT.NONE); l.setText(Messages.AbstractIconDialog_IconName); final Text t = new Text(container, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH); t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); new Label(container, SWT.NONE); viewer = new TableViewer(container); GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { IFile file = (IFile) cell.getElement(); StyledString styledString = new StyledString(file.getProjectRelativePath().toString(), null); Image img = icons.get(file); if (img == null) { InputStream in = null; try { in = file.getContents(); img = new Image(cell.getControl().getDisplay(), in); icons.put(file, img); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } String bundle = getBundle(file); if (bundle != null) { styledString.append(" - " + bundle, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } cell.setImage(img); cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); final WritableList list = new WritableList(); viewer.setInput(list); viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { okPressed(); } }); t.addModifyListener(new ModifyListener() { private IconMatchCallback callback; private Timer timer = new Timer(true); private TimerTask task; public void modifyText(ModifyEvent e) { if (callback != null) { callback.cancel = true; } if (task != null) { task.cancel(); } list.clear(); clearImages(); callback = new IconMatchCallback(list); task = new SearchThread(callback, t.getText(), project); timer.schedule(task, 500); } }); getShell().addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { clearImages(); } }); return comp; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.AbstractIconDialogWithHardcodedScope.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); getShell().setText(getShellTitle()); setTitle(getDialogTitle());/*from ww w . jav a 2 s. c om*/ setMessage(getDialogMessage()); String bundleFilter = (String) context.get("bundle"); if (E.notEmpty(bundleFilter)) { setMessage("Filtering by bundle " + bundleFilter); //$NON-NLS-1$ } Composite container = new Composite(comp, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); container.setLayout(new GridLayout(2, false)); Composite compOptions = new Composite(container, SWT.NONE); compOptions.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); compOptions.setLayout(new RowLayout()); if (E.isEmpty(bundleFilter)) { Button btnProject = new Button(compOptions, SWT.RADIO); btnProject.setText("Project"); btnProject.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { searchScope = ResourceSearchScope.PROJECT; textSearch.notifyListeners(SWT.Modify, new Event()); } }); btnProject.setSelection(true); Button btnWorkspace = new Button(compOptions, SWT.RADIO); btnWorkspace.setText("Workspace"); btnWorkspace.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { searchScope = ResourceSearchScope.WORKSPACE; textSearch.notifyListeners(SWT.Modify, new Event()); } }); btnWorkspace.setSelection(searchScope == ResourceSearchScope.WORKSPACE); btnProject.setSelection(searchScope == ResourceSearchScope.PROJECT); } else { searchScope = ResourceSearchScope.WORKSPACE; } Label l = new Label(container, SWT.NONE); l.setText(Messages.AbstractIconDialog_IconName); textSearch = new Text(container, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH); textSearch.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); new Label(container, SWT.NONE); viewer = new TableViewer(container, SWT.FULL_SELECTION | SWT.BORDER); GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { IFile file = (IFile) cell.getElement(); StyledString styledString = new StyledString(file.getProjectRelativePath().toString(), null); Image img = icons.get(file); if (img == null) { InputStream in = null; try { in = file.getContents(); img = new Image(cell.getControl().getDisplay(), in); icons.put(file, img); } catch (CoreException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (in != null) { try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } String bundle = getBundle(file); if (bundle != null) { styledString.append(" - " + bundle, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } cell.setImage(img); cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); final WritableList list = new WritableList(); viewer.setInput(list); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { okPressed(); } }); textSearch.addModifyListener(new ModifyListener() { private IconMatchCallback callback; private Timer timer = new Timer(true); private TimerTask task; @Override public void modifyText(ModifyEvent e) { if (callback != null) { callback.cancel = true; } if (task != null) { task.cancel(); } list.clear(); clearImages(); callback = new IconMatchCallback(list); task = new SearchThread(callback, textSearch.getText(), project, context, searchScope); timer.schedule(task, 500); } }); getShell().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { clearImages(); } }); textSearch.notifyListeners(SWT.Modify, new Event()); return comp; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.FilteredContributionDialog.java
License:Open Source License
protected void rebuildViewer() { viewerList = new WritableList(); TableViewer oldViewer = viewer;//from ww w.ja va2 s.co m viewer = new TableViewer(compOptions, SWT.FULL_SELECTION | SWT.BORDER); if (oldViewer != null) { viewer.getTable().moveAbove(oldViewer.getTable()); oldViewer.getTable().dispose(); } GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { ContributionData data; if (cell.getElement() instanceof ContributionData) { data = (ContributionData) cell.getElement(); } else if (cell.getElement() instanceof ContributionDataFile) { data = ((ContributionDataFile) cell.getElement()).getContributionData(); } else { return; } StyledString styledString = new StyledString(); if (data.className != null) { styledString.append(data.className, null); } if (data.bundleName != null) { styledString.append(" - " + data.bundleName, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } else if (data.installLocation != null) { styledString.append(" - " + data.installLocation, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } if (data.sourceType != null) { styledString.append(" - ", StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ styledString.append(data.sourceType + "", StyledString.COUNTER_STYLER); //$NON-NLS-1$ } if (data.iconPath == null) { cell.setImage(contributionTypeImage); } cell.setText(styledString.getString()); cell.setStyleRanges(styledString.getStyleRanges()); } }); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { okPressed(); } }); viewer.setInput(viewerList); if (oldViewer != null) { getViewer().getTable().getParent().layout(true, true); getViewer().getTable().getParent().redraw(); } }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.FindImportElementDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); final Image titleImage = new Image(parent.getDisplay(), getClass().getClassLoader().getResourceAsStream("/icons/full/wizban/import_wiz.png")); //$NON-NLS-1$ setTitleImage(titleImage);//www . ja v a2 s .c om getShell().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { titleImage.dispose(); } }); getShell().setText(Messages.FindImportElementDialog_ShellTitle); setTitle(Messages.FindImportElementDialog_Title); setMessage(Messages.FindImportElementDialog_Message); Composite container = new Composite(comp, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); container.setLayout(new GridLayout(2, false)); Label l = new Label(container, SWT.NONE); l.setText(Messages.FindImportElementDialog_Search); final Text searchText = new Text(container, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH); GridData gd = new GridData(GridData.FILL_HORIZONTAL); searchText.setLayoutData(gd); l = new Label(container, SWT.PUSH); viewer = new TableViewer(container); gd = new GridData(GridData.FILL_BOTH); gd.heightHint = 200; viewer.getControl().setLayoutData(gd); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { EObject o = (EObject) cell.getElement(); cell.setImage(editor.getImage(o, searchText.getDisplay())); MApplicationElement appEl = (MApplicationElement) o; StyledString styledString = new StyledString(editor.getLabel(o) + " (" //$NON-NLS-1$ + (appEl.getElementId() == null ? "<" + Messages.FindImportElementDialog_noId + ">" //$NON-NLS-1$//$NON-NLS-2$ : appEl.getElementId()) + ")", null); //$NON-NLS-1$ String detailLabel = editor.getDetailLabel(o); if (detailLabel != null && !detailLabel.equals(appEl.getElementId())) { styledString.append(" - " + detailLabel, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } styledString.append(" - " + o.eResource().getURI(), StyledString.COUNTER_STYLER); //$NON-NLS-1$ cell.setStyleRanges(styledString.getStyleRanges()); cell.setText(styledString.getString()); } }); viewer.setContentProvider(new ObservableListContentProvider()); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { okPressed(); } }); final WritableList list = new WritableList(); viewer.setInput(list); final ClassContributionCollector collector = getCollector(); searchText.addModifyListener(new ModifyListener() { private ModelResultHandlerImpl currentResultHandler; @Override public void modifyText(ModifyEvent e) { if (currentResultHandler != null) { currentResultHandler.cancled = true; } list.clear(); Filter filter = new Filter(element.eClass(), searchText.getText()); currentResultHandler = new ModelResultHandlerImpl(list, filter, editor, element.eResource()); collector.findModelElements(filter, currentResultHandler); } }); Button button = new Button(container, SWT.PUSH); button.setText(Messages.FindImportElementDialog_ClearCache); button.setLayoutData(new GridData(GridData.END, GridData.CENTER, true, false, 2, 1)); button.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { collector.clearModelCache(); } }); return comp; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.dialogs.FindParentReferenceElementDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite comp = (Composite) super.createDialogArea(parent); final Image titleImage = new Image(parent.getDisplay(), getClass().getClassLoader().getResourceAsStream("/icons/full/wizban/import_wiz.png")); //$NON-NLS-1$ setTitleImage(titleImage);/*w w w. j a v a 2 s .c om*/ getShell().addDisposeListener(new DisposeListener() { @Override public void widgetDisposed(DisposeEvent e) { titleImage.dispose(); } }); getShell().setText(Messages.FindParentReferenceElementDialog_ShellTitle); setTitle(Messages.FindParentReferenceElementDialog_Title); setMessage(Messages.FindParentReferenceElementDialog_Message); Composite container = new Composite(comp, SWT.NONE); container.setLayoutData(new GridData(GridData.FILL_BOTH)); container.setLayout(new GridLayout(2, false)); Label l = new Label(container, SWT.NONE); l.setText(Messages.FindParentReferenceElementDialog_ContainerType); eClassViewer = new ComboViewer(container); eClassViewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { return ((EClass) element).getName(); } }); eClassViewer.setContentProvider(new ArrayContentProvider()); List<EClass> eClassList = new ArrayList<EClass>(); for (InternalPackage p : Util.loadPackages()) { eClassList.addAll(p.getAllClasses()); } eClassViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { EClass ec1 = (EClass) e1; EClass ec2 = (EClass) e2; return ec1.getName().compareTo(ec2.getName()); } }); eClassViewer.setInput(eClassList); eClassViewer.getCombo().select(0); eClassViewer.getControl().setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); eClassViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { updateSearch(); } }); l = new Label(container, SWT.NONE); l.setText(Messages.FindParentReferenceElementDialog_Search); searchText = new Text(container, SWT.BORDER | SWT.SEARCH | SWT.ICON_SEARCH); GridData gd = new GridData(GridData.FILL_HORIZONTAL); searchText.setLayoutData(gd); l = new Label(container, SWT.PUSH); viewer = new TableViewer(container); gd = new GridData(GridData.FILL_BOTH); gd.heightHint = 200; viewer.getControl().setLayoutData(gd); viewer.setLabelProvider(new StyledCellLabelProvider() { @Override public void update(ViewerCell cell) { EObject o = (EObject) cell.getElement(); AbstractComponentEditor editor = FindParentReferenceElementDialog.this.editor.getEditor() .getEditor(o.eClass()); cell.setImage(editor.getImage(o, searchText.getDisplay())); MApplicationElement appEl = (MApplicationElement) o; StyledString styledString = new StyledString(editor.getLabel(o) + " (" //$NON-NLS-1$ + (appEl.getElementId() == null ? "<" + Messages.FindParentReferenceElementDialog_NoId + ">" //$NON-NLS-1$//$NON-NLS-2$ : appEl.getElementId()) + ")", null); //$NON-NLS-1$ String detailLabel = editor.getDetailLabel(o); if (detailLabel != null && !detailLabel.equals(appEl.getElementId())) { styledString.append(" - " + detailLabel, StyledString.DECORATIONS_STYLER); //$NON-NLS-1$ } styledString.append(" - " + o.eResource().getURI(), StyledString.COUNTER_STYLER); //$NON-NLS-1$ cell.setStyleRanges(styledString.getStyleRanges()); cell.setText(styledString.getString()); } }); viewer.setContentProvider(new ObservableListContentProvider()); viewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { okPressed(); } }); list = new WritableList(); viewer.setInput(list); final ClassContributionCollector collector = getCollector(); searchText.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { updateSearch(); } }); Button button = new Button(container, SWT.PUSH); button.setText(Messages.FindParentReferenceElementDialog_ClearCache); button.setLayoutData(new GridData(GridData.END, GridData.CENTER, true, false, 2, 1)); button.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { collector.clearModelCache(); } }); return comp; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.KeyBindingEditor.java
License:Open Source License
private Composite createForm(Composite parent, EMFDataBindingContext context, IObservableValue master, boolean isImport) { CTabFolder folder = new CTabFolder(parent, SWT.BOTTOM); CTabItem item = new CTabItem(folder, SWT.NONE); item.setText(Messages.ModelTooling_Common_TabDefault); parent = createScrollableContainer(folder); item.setControl(parent.getParent()); if (getEditor().isShowXMIId() || getEditor().isLiveModel()) { ControlFactory.createXMIId(parent, this); }/*from w w w. j a va 2s . c om*/ IWidgetValueProperty textProp = WidgetProperties.text(SWT.Modify); if (isImport) { ControlFactory.createFindImport(parent, Messages, this, context); folder.setSelection(0); return folder; } ControlFactory.createTextField(parent, Messages.ModelTooling_Common_Id, master, context, textProp, EMFEditProperties.value(getEditingDomain(), ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__ELEMENT_ID)); // ------------------------------------------------------------ { Label l = new Label(parent, SWT.NONE); l.setText(Messages.KeyBindingEditor_Sequence); l.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); final Text t = new Text(parent, SWT.BORDER); TextPasteHandler.createFor(t); GridData gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalSpan = 2; t.setLayoutData(gd); Binding binding = context.bindValue(textProp.observeDelayed(200, t), EMFEditProperties .value(getEditingDomain(), CommandsPackageImpl.Literals.KEY_SEQUENCE__KEY_SEQUENCE) .observeDetail(getMaster()), new UpdateValueStrategy().setBeforeSetValidator(new BindingValidator()), new UpdateValueStrategy()); Util.addDecoration(t, binding); } // ------------------------------------------------------------ { Label l = new Label(parent, SWT.NONE); l.setText(Messages.KeyBindingEditor_Command); l.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); Text t = new Text(parent, SWT.BORDER); TextPasteHandler.createFor(t); t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); t.setEditable(false); context.bindValue(textProp.observeDelayed(200, t), EMFEditProperties.value(getEditingDomain(), CommandsPackageImpl.Literals.KEY_BINDING__COMMAND) .observeDetail(getMaster()), new UpdateValueStrategy(), new UpdateValueStrategy().setConverter(new CommandToStringConverter(Messages))); final Button b = new Button(parent, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_FindEllipsis); b.setImage(createImage(ResourceProvider.IMG_Obj16_zoom)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { KeyBindingCommandSelectionDialog dialog = new KeyBindingCommandSelectionDialog(b.getShell(), (MKeyBinding) getMaster().getValue(), resource, Messages); dialog.open(); } }); } Label l = new Label(parent, SWT.NONE); l.setText(Messages.KeyBindingEditor_Parameters); l.setLayoutData(new GridData(GridData.END, GridData.BEGINNING, false, false)); final TableViewer viewer = new TableViewer(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER); ObservableListContentProvider cp = new ObservableListContentProvider(); viewer.setContentProvider(cp); viewer.setLabelProvider(new ComponentLabelProvider(getEditor(), Messages)); GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); viewer.setInput(KEY_BINDING__PARAMETERS.observeDetail(getMaster())); Composite buttonComp = new Composite(parent, SWT.NONE); buttonComp.setLayoutData(new GridData(GridData.FILL, GridData.END, false, false)); GridLayout gl = new GridLayout(); gl.marginLeft = 0; gl.marginRight = 0; gl.marginWidth = 0; gl.marginHeight = 0; buttonComp.setLayout(gl); Button b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Up); b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_up)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); MKeyBinding container = (MKeyBinding) getMaster().getValue(); int idx = container.getParameters().indexOf(obj) - 1; if (idx >= 0) { Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), CommandsPackageImpl.Literals.KEY_BINDING__PARAMETERS, obj, idx); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); viewer.setSelection(new StructuredSelection(obj)); } } } } } }); b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Down); b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_down)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); MKeyBinding container = (MKeyBinding) getMaster().getValue(); int idx = container.getParameters().indexOf(obj) + 1; if (idx < container.getParameters().size()) { Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), CommandsPackageImpl.Literals.KEY_BINDING__PARAMETERS, obj, idx); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); viewer.setSelection(new StructuredSelection(obj)); } } } } } }); b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_AddEllipsis); b.setImage(createImage(ResourceProvider.IMG_Obj16_table_add)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { handleAddParameter(); } }); b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Remove); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (!s.isEmpty()) { MKeyBinding item = (MKeyBinding) getMaster().getValue(); Command cmd = RemoveCommand.create(getEditingDomain(), item, CommandsPackageImpl.Literals.KEY_BINDING__PARAMETERS, s.toList()); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); } } } }); b.setImage(createImage(ResourceProvider.IMG_Obj16_table_delete)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); item = new CTabItem(folder, SWT.NONE); item.setText(Messages.ModelTooling_Common_TabSupplementary); parent = createScrollableContainer(folder); item.setControl(parent.getParent()); ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); ControlFactory.createMapProperties(parent, Messages, this, Messages.ModelTooling_Contribution_PersistedState, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__PERSISTED_STATE, VERTICAL_LIST_WIDGET_INDENT); createContributedEditorTabs(folder, context, getMaster(), MKeyBinding.class); folder.setSelection(0); return folder; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.MenuContributionEditor.java
License:Open Source License
private Composite createForm(Composite parent, EMFDataBindingContext context, WritableValue master, boolean isImport) { CTabFolder folder = new CTabFolder(parent, SWT.BOTTOM); CTabItem item = new CTabItem(folder, SWT.NONE); item.setText(Messages.ModelTooling_Common_TabDefault); parent = createScrollableContainer(folder); item.setControl(parent.getParent()); if (getEditor().isShowXMIId() || getEditor().isLiveModel()) { ControlFactory.createXMIId(parent, this); }//from www .j a v a 2 s .c om IWidgetValueProperty textProp = WidgetProperties.text(SWT.Modify); if (isImport) { ControlFactory.createFindImport(parent, Messages, this, context); folder.setSelection(0); return folder; } ControlFactory.createTextField(parent, Messages.ModelTooling_Common_Id, master, context, textProp, EMFEditProperties.value(getEditingDomain(), ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__ELEMENT_ID)); ControlFactory.createTextField(parent, Messages.ModelTooling_UIElement_AccessibilityPhrase, getMaster(), context, textProp, EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__ACCESSIBILITY_PHRASE)); { Label l = new Label(parent, SWT.NONE); l.setText(Messages.MenuContributionEditor_ParentId); l.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); final Text t = new Text(parent, SWT.BORDER); TextPasteHandler.createFor(t); GridData gd = new GridData(GridData.FILL_HORIZONTAL); t.setLayoutData(gd); context.bindValue(textProp.observeDelayed(200, t), EMFEditProperties .value(getEditingDomain(), MenuPackageImpl.Literals.MENU_CONTRIBUTION__PARENT_ID) .observeDetail(getMaster())); Button b = new Button(parent, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_FindEllipsis); b.setImage(createImage(ResourceProvider.IMG_Obj16_zoom)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MenuIdDialog dialog = new MenuIdDialog(t.getShell(), resource, (MMenuContribution) getMaster().getValue(), getEditingDomain(), modelService, Messages); dialog.open(); } }); } ControlFactory.createTextField(parent, Messages.MenuContributionEditor_Position, master, context, textProp, EMFEditProperties.value(getEditingDomain(), MenuPackageImpl.Literals.MENU_CONTRIBUTION__POSITION_IN_PARENT)); // ------------------------------------------------------------ { Label l = new Label(parent, SWT.NONE); l.setText(Messages.MenuContributionEditor_MenuItems); l.setLayoutData(new GridData(GridData.END, GridData.BEGINNING, false, false)); final TableViewer viewer = new TableViewer(parent); ObservableListContentProvider cp = new ObservableListContentProvider(); viewer.setContentProvider(cp); viewer.setLabelProvider(new ComponentLabelProvider(getEditor(), Messages)); GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); IEMFListProperty prop = EMFEditProperties.list(getEditingDomain(), UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN); viewer.setInput(prop.observeDetail(master)); Composite buttonComp = new Composite(parent, SWT.NONE); buttonComp.setLayoutData(new GridData(GridData.FILL, GridData.END, false, false)); GridLayout gl = new GridLayout(2, false); gl.marginLeft = 0; gl.marginRight = 0; gl.marginWidth = 0; gl.marginHeight = 0; buttonComp.setLayout(gl); Button b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Up); b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_up)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); MElementContainer<?> container = (MElementContainer<?>) getMaster().getValue(); int idx = container.getChildren().indexOf(obj) - 1; if (idx >= 0) { if (Util.moveElementByIndex(getEditingDomain(), (MUIElement) obj, getEditor().isLiveModel(), idx)) { viewer.setSelection(new StructuredSelection(obj)); } } } } } }); b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Down); b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_down)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); MElementContainer<?> container = (MElementContainer<?>) getMaster().getValue(); int idx = container.getChildren().indexOf(obj) + 1; if (idx < container.getChildren().size()) { if (Util.moveElementByIndex(getEditingDomain(), (MUIElement) obj, getEditor().isLiveModel(), idx)) { viewer.setSelection(new StructuredSelection(obj)); } } } } } }); final ComboViewer childrenDropDown = new ComboViewer(buttonComp); childrenDropDown.getControl().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); childrenDropDown.setContentProvider(new ArrayContentProvider()); childrenDropDown.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { Struct struct = (Struct) element; return struct.label; } }); Struct defaultStruct = new Struct(Messages.MenuContributionEditor_HandledMenuItem, MenuPackageImpl.Literals.HANDLED_MENU_ITEM, false); childrenDropDown.setInput(new Struct[] { new Struct(Messages.MenuContributionEditor_Separator, MenuPackageImpl.Literals.MENU_SEPARATOR, true), new Struct(Messages.MenuContributionEditor_Menu, MenuPackageImpl.Literals.MENU, false), defaultStruct, new Struct(Messages.MenuContributionEditor_DirectMenuItem, MenuPackageImpl.Literals.DIRECT_MENU_ITEM, false), new Struct(Messages.MenuContributionEditor_DynamicMenuContribution, MenuPackageImpl.Literals.DYNAMIC_MENU_CONTRIBUTION, false) }); childrenDropDown.setSelection(new StructuredSelection(defaultStruct)); b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setImage(createImage(ResourceProvider.IMG_Obj16_table_add)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!childrenDropDown.getSelection().isEmpty()) { Struct struct = (Struct) ((IStructuredSelection) childrenDropDown.getSelection()) .getFirstElement(); EClass eClass = struct.eClass; MMenuElement eObject = (MMenuElement) EcoreUtil.create(eClass); Command cmd = AddCommand.create(getEditingDomain(), getMaster().getValue(), UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN, eObject); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); if (!struct.separator) { getEditor().setSelection(eObject); } } } } }); b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Remove); b.setImage(createImage(ResourceProvider.IMG_Obj16_table_delete)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { List<?> keybinding = ((IStructuredSelection) viewer.getSelection()).toList(); Command cmd = RemoveCommand.create(getEditingDomain(), getMaster().getValue(), UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN, keybinding); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); } } } }); } ControlFactory.createCheckBox(parent, "To Be Rendered", getMaster(), context, WidgetProperties.selection(), //$NON-NLS-1$ EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__TO_BE_RENDERED)); ControlFactory.createCheckBox(parent, "Visible", getMaster(), context, WidgetProperties.selection(), //$NON-NLS-1$ EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__VISIBLE)); item = new CTabItem(folder, SWT.NONE); item.setText(Messages.ModelTooling_Common_TabSupplementary); parent = createScrollableContainer(folder); item.setControl(parent.getParent()); ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); ControlFactory.createMapProperties(parent, Messages, this, Messages.ModelTooling_Contribution_PersistedState, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__PERSISTED_STATE, VERTICAL_LIST_WIDGET_INDENT); createContributedEditorTabs(folder, context, getMaster(), MMenuContribution.class); folder.setSelection(0); return folder; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.MenuEditor.java
License:Open Source License
protected Composite createForm(Composite parent, EMFDataBindingContext context, WritableValue master, boolean rootMenu, boolean isImport) { CTabFolder folder = new CTabFolder(parent, SWT.BOTTOM); CTabItem item = new CTabItem(folder, SWT.NONE); item.setText(Messages.ModelTooling_Common_TabDefault); parent = createScrollableContainer(folder); item.setControl(parent.getParent()); if (getEditor().isShowXMIId() || getEditor().isLiveModel()) { ControlFactory.createXMIId(parent, this); }/*from www.ja va2 s .c o m*/ IWidgetValueProperty textProp = WidgetProperties.text(SWT.Modify); if (isImport) { ControlFactory.createFindImport(parent, Messages, this, context); folder.setSelection(0); return folder; } ControlFactory.createTextField(parent, Messages.ModelTooling_Common_Id, master, context, textProp, EMFEditProperties.value(getEditingDomain(), ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__ELEMENT_ID)); // ------------------------------------------------------------ if (!rootMenu) { ControlFactory.createTranslatedTextField(parent, Messages.MenuEditor_LabelLabel, master, context, textProp, EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_LABEL__LABEL), resourcePool, project); } ControlFactory.createTextField(parent, Messages.MenuEditor_Mnemonics, master, context, textProp, EMFEditProperties.value(getEditingDomain(), MenuPackageImpl.Literals.MENU_ELEMENT__MNEMONICS)); { Label l = new Label(parent, SWT.NONE); l.setText(Messages.MenuEditor_Children); l.setLayoutData(new GridData(GridData.END, GridData.BEGINNING, false, false)); Composite buttonComp = new Composite(parent, SWT.NONE); GridData span2 = new GridData(GridData.FILL, GridData.BEGINNING, false, false, 2, 1); buttonComp.setLayoutData(span2); GridLayout gl = new GridLayout(2, false); gl.marginLeft = 0; gl.marginRight = 0; gl.marginWidth = 0; gl.marginHeight = 0; buttonComp.setLayout(gl); final ComboViewer childrenDropDown = new ComboViewer(buttonComp); childrenDropDown.getControl().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); childrenDropDown.setContentProvider(new ArrayContentProvider()); childrenDropDown.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { Struct struct = (Struct) element; return struct.label; } }); Struct defaultStruct = new Struct(Messages.MenuEditor_HandledMenuItem, MenuPackageImpl.Literals.HANDLED_MENU_ITEM, false); childrenDropDown.setInput(new Struct[] { new Struct(Messages.MenuEditor_Separator, MenuPackageImpl.Literals.MENU_SEPARATOR, true), new Struct(Messages.MenuEditor_Menu, MenuPackageImpl.Literals.MENU, false), defaultStruct, new Struct(Messages.MenuEditor_DirectMenuItem, MenuPackageImpl.Literals.DIRECT_MENU_ITEM, false), new Struct(Messages.MenuEditor_DynamicMenuContribution, MenuPackageImpl.Literals.DYNAMIC_MENU_CONTRIBUTION, false) }); childrenDropDown.setSelection(new StructuredSelection(defaultStruct)); Button b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_AddEllipsis); b.setImage(createImage(ResourceProvider.IMG_Obj16_table_add)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!childrenDropDown.getSelection().isEmpty()) { Struct struct = (Struct) ((IStructuredSelection) childrenDropDown.getSelection()) .getFirstElement(); EClass eClass = struct.eClass; handleAdd(eClass, struct.separator); } } }); new Label(parent, SWT.None); final TableViewer viewer = new TableViewer(parent); ObservableListContentProvider cp = new ObservableListContentProvider(); viewer.setContentProvider(cp); GridData gd = new GridData(GridData.FILL, GridData.FILL, true, true, 2, 1); viewer.getControl().setLayoutData(gd); viewer.setLabelProvider(new ComponentLabelProvider(getEditor(), Messages)); IEMFListProperty prop = EMFEditProperties.list(getEditingDomain(), UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN); viewer.setInput(prop.observeDetail(master)); new Label(parent, SWT.None); Composite buttonComp2 = new Composite(parent, SWT.NONE); buttonComp2.setLayoutData(span2); buttonComp2.setLayout(new FillLayout()); b = new Button(buttonComp2, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Up); b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_up)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); MElementContainer<?> container = (MElementContainer<?>) getMaster().getValue(); int idx = container.getChildren().indexOf(obj) - 1; if (idx >= 0) { if (Util.moveElementByIndex(getEditingDomain(), (MUIElement) obj, getEditor().isLiveModel(), idx)) { viewer.setSelection(new StructuredSelection(obj)); } } } } } }); b = new Button(buttonComp2, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Down); b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_down)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); MElementContainer<?> container = (MElementContainer<?>) getMaster().getValue(); int idx = container.getChildren().indexOf(obj) + 1; if (idx < container.getChildren().size()) { if (Util.moveElementByIndex(getEditingDomain(), (MUIElement) obj, getEditor().isLiveModel(), idx)) { viewer.setSelection(new StructuredSelection(obj)); } } } } } }); b = new Button(buttonComp2, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Remove); b.setImage(createImage(ResourceProvider.IMG_Obj16_table_delete)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { List<?> keybinding = ((IStructuredSelection) viewer.getSelection()).toList(); Command cmd = RemoveCommand.create(getEditingDomain(), getMaster().getValue(), UiPackageImpl.Literals.ELEMENT_CONTAINER__CHILDREN, keybinding); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); } } } }); } // ------------------------------------------------------------ if (!rootMenu) { ControlFactory.createTranslatedTextField(parent, Messages.MenuEditor_Tooltip, master, context, textProp, EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_LABEL__TOOLTIP), resourcePool, project); } // ------------------------------------------------------------ if (!rootMenu) { Label l = new Label(parent, SWT.NONE); l.setText(Messages.MenuEditor_IconURI); l.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); Text t = new Text(parent, SWT.BORDER); TextPasteHandler.createFor(t); t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); context.bindValue(textProp.observeDelayed(200, t), EMFEditProperties .value(getEditingDomain(), UiPackageImpl.Literals.UI_LABEL__ICON_URI).observeDetail(master)); new ImageTooltip(t, Messages) { @Override protected URI getImageURI() { MUILabel part = (MUILabel) getMaster().getValue(); String uri = part.getIconURI(); if (uri == null || uri.trim().length() == 0) { return null; } return URI.createURI(part.getIconURI()); } }; final Button b = new Button(parent, SWT.PUSH | SWT.FLAT); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); b.setImage(createImage(ResourceProvider.IMG_Obj16_zoom)); b.setText(Messages.ModelTooling_Common_FindEllipsis); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MenuIconDialogEditor dialog = new MenuIconDialogEditor(b.getShell(), eclipseContext, project, getEditingDomain(), (MMenu) getMaster().getValue(), Messages); dialog.open(); } }); } { Label l = new Label(parent, SWT.NONE); l.setText(Messages.ModelTooling_UIElement_VisibleWhen); l.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); ComboViewer combo = new ComboViewer(parent); combo.getControl().setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1)); combo.setContentProvider(new ArrayContentProvider()); combo.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { if (element instanceof EClass) { EClass eClass = (EClass) element; return eClass.getName(); } return super.getText(element); } }); List<Object> list = new ArrayList<Object>(); list.add(Messages.MenuItemEditor_NoExpression); list.add(UiPackageImpl.Literals.CORE_EXPRESSION); list.addAll(getEditor().getFeatureClasses(UiPackageImpl.Literals.EXPRESSION, UiPackageImpl.Literals.UI_ELEMENT__VISIBLE_WHEN)); combo.setInput(list); context.bindValue(ViewerProperties.singleSelection().observe(combo), EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__VISIBLE_WHEN) .observeDetail(getMaster()), new UpdateValueStrategy().setConverter(new EClass2EObject(Messages)), new UpdateValueStrategy().setConverter(new EObject2EClass(Messages))); } ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_ToBeRendered, getMaster(), context, WidgetProperties.selection(), EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__TO_BE_RENDERED)); ControlFactory.createCheckBox(parent, Messages.ModelTooling_UIElement_Visible, getMaster(), context, WidgetProperties.selection(), EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__VISIBLE)); item = new CTabItem(folder, SWT.NONE); item.setText(Messages.ModelTooling_Common_TabSupplementary); parent = createScrollableContainer(folder); item.setControl(parent.getParent()); ControlFactory.createTextField(parent, Messages.ModelTooling_UIElement_AccessibilityPhrase, getMaster(), context, textProp, EMFEditProperties.value(getEditingDomain(), UiPackageImpl.Literals.UI_ELEMENT__ACCESSIBILITY_PHRASE)); ControlFactory.createStringListWidget(parent, Messages, this, Messages.CategoryEditor_Tags, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__TAGS, VERTICAL_LIST_WIDGET_INDENT); ControlFactory.createMapProperties(parent, Messages, this, Messages.ModelTooling_Contribution_PersistedState, ApplicationPackageImpl.Literals.APPLICATION_ELEMENT__PERSISTED_STATE, VERTICAL_LIST_WIDGET_INDENT); if (project == null) { createUITreeInspection(folder); } createContributedEditorTabs(folder, context, getMaster(), MMenu.class); folder.setSelection(0); return folder; }
From source file:org.eclipse.e4.tools.emf.ui.internal.common.component.ModelFragmentsEditor.java
License:Open Source License
private void createFragmentsTab(CTabFolder folder) { CTabItem item = new CTabItem(folder, SWT.NONE); item.setText(Messages.ModelFragmentsEditor_ModelFragments); Composite parent = createScrollableContainer(folder); item.setControl(parent.getParent()); {/*from w w w . ja v a 2s . c o m*/ Composite fragCompo = new Composite(parent, SWT.NONE); fragCompo.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 3, 1)); GridLayout fragCompoLayout = new GridLayout(1, false); fragCompoLayout.marginLeft = 0; fragCompoLayout.marginRight = 0; fragCompoLayout.marginWidth = 0; fragCompoLayout.marginHeight = 0; fragCompo.setLayout(fragCompoLayout); final TableViewer viewer = new TableViewer(fragCompo); viewer.setContentProvider(new ObservableListContentProvider()); viewer.setLabelProvider(new ComponentLabelProvider(getEditor(), Messages)); GridData gd = new GridData(GridData.FILL_BOTH); viewer.getControl().setLayoutData(gd); IEMFListProperty prop = EMFProperties.list(FragmentPackageImpl.Literals.MODEL_FRAGMENTS__FRAGMENTS); viewer.setInput(prop.observeDetail(getMaster())); Composite buttonComp = new Composite(parent, SWT.NONE); buttonComp.setLayoutData(new GridData(GridData.FILL, GridData.END, false, false)); GridLayout gl = new GridLayout(4, false); gl.marginLeft = 0; gl.marginRight = 0; gl.marginWidth = 0; gl.marginHeight = 0; buttonComp.setLayout(gl); Button b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Up); b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_up)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); MModelFragments container = (MModelFragments) getMaster().getValue(); int idx = container.getFragments().indexOf(obj) - 1; if (idx >= 0) { Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__FRAGMENTS, obj, idx); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); viewer.setSelection(new StructuredSelection(obj)); } } } } } }); b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Down); b.setImage(createImage(ResourceProvider.IMG_Obj16_arrow_down)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { IStructuredSelection s = (IStructuredSelection) viewer.getSelection(); if (s.size() == 1) { Object obj = s.getFirstElement(); MModelFragments container = (MModelFragments) getMaster().getValue(); int idx = container.getFragments().indexOf(obj) + 1; if (idx < container.getFragments().size()) { Command cmd = MoveCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__FRAGMENTS, obj, idx); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); viewer.setSelection(new StructuredSelection(obj)); } } } } } }); b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_AddEllipsis); b.setImage(createImage(ResourceProvider.IMG_Obj16_table_add)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MModelFragment component = MFragmentFactory.INSTANCE.createStringModelFragment(); Command cmd = AddCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__FRAGMENTS, component); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); getEditor().setSelection(component); } } }); b = new Button(buttonComp, SWT.PUSH | SWT.FLAT); b.setText(Messages.ModelTooling_Common_Remove); b.setImage(createImage(ResourceProvider.IMG_Obj16_table_delete)); b.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); b.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (!viewer.getSelection().isEmpty()) { List<?> elements = ((IStructuredSelection) viewer.getSelection()).toList(); Command cmd = RemoveCommand.create(getEditingDomain(), getMaster().getValue(), FragmentPackageImpl.Literals.MODEL_FRAGMENTS__FRAGMENTS, elements); if (cmd.canExecute()) { getEditingDomain().getCommandStack().execute(cmd); } } } }); } }