Example #1
0
 /**
  * Sets the input to this editor.
  *
  * <p><b>Note:</b> Clients must fire the {@link IEditorPart#PROP_INPUT } property change within
  * their implementation of <code>setInput()</code>.
  *
  * <p>
  *
  * @param input the editor input
  */
 @Override
 public void setInput(IEditorInput input) {
   super.setInput(input);
   if (treeViewer != null) {
     PlanEditorModel model = PlanEditorModelRegistry.getPlanEditorModel(input);
     treeViewer.setInput(model.getEPlan());
     treeViewer.setEditorModel(model);
   }
   firePropertyChange(IWorkbenchPartConstants.PROP_INPUT);
 }
Example #2
0
 @Override
 public void updateActionBars(IActionBars bars) {
   if (bars != null) {
     treeViewer.setActionBars(bars);
   }
   super.updateActionBars(bars);
 }
Example #3
0
 @Override
 public Object getAdapter(Class key) {
   if (key.equals(IContextProvider.class)) {
     return new ContextProvider("gov.nasa.ensemble.core.plan.editor.merge.TreePlanEditor");
   } else if (key.equals(MergeRowHighlightDecorator.class)) {
     IBaseLabelProvider labelProvider = treeViewer.getLabelProvider();
     if (labelProvider instanceof MergeTreeLabelProvider) {
       return ((MergeTreeLabelProvider) labelProvider).getRowHighlightDecorator();
     }
   }
   return super.getAdapter(key);
 }
Example #4
0
 private void duplicateCurrentSelection(KeyEvent e) {
   ISelection selection = treeViewer.getSelection();
   if (selection.isEmpty()) {
     return; // nothing to do
   }
   PlanStructureModifier modifier = getStructureModifier();
   PlanTransferable source = modifier.getTransferable(selection);
   PlanTransferable copy = (PlanTransferable) modifier.copy(source);
   IStructureLocation location =
       modifier.getInsertionLocation(copy, selection, InsertionSemantics.AFTER);
   AbstractOperation op = new PlanAddOperation(copy, modifier, location);
   op.setLabel("Duplicate element(s)");
   WidgetUtils.execute(op, getUndoContext(), e.widget, getSite());
 }
Example #5
0
  @Override
  public void createPartControl(Composite parent) {
    IEditorInput input = getEditorInput();
    final TreeTableColumnConfiguration configuration =
        TableEditorUtils.getTableConfiguration(getId(), input);
    final PlanEditorModel model = PlanEditorModelRegistry.getPlanEditorModel(input);
    final EPlan plan = model.getEPlan();
    EnsembleSelectionProvider selectionProvider =
        (EnsembleSelectionProvider) getSelectionProvider();

    editorComposite = new EnsembleComposite(parent, SWT.NONE);
    // layout for the editor (arrangement and spacing between tree and table)
    GridLayout layout = new GridLayout(1, true);
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    layout.verticalSpacing = 0;
    editorComposite.setLayout(layout);

    // setup tree
    treeComposite = buildTree(editorComposite, configuration);
    treeComposite.setData("name", "MergeEditor.treeComposite");
    treeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    treeViewer = new MergeTreeViewer(treeComposite, configuration, getSite());
    treeViewer.setContentProvider(new MergeTreeContentProvider());
    MergeTreeLabelProvider labelProvider = new MergeTreeLabelProvider();
    labelProvider.setRowHighlightDecorator(rowHighlightDecorator);
    treeViewer.setLabelProvider(labelProvider);
    treeViewer.setInput(plan);
    treeViewer.setEditorModel(model);
    treeViewer.expandToLevel(1);
    treeViewer.setAutoExpandLevel(1);
    selectionProvider.attachSelectionProvider(new TreeTableViewerSelectionListener(treeViewer));

    // setup table
    totalComposite = new MergeTotalComposite(editorComposite, configuration);
    totalComposite.setData("name", "MergeEditor.totalComposite");
    totalComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

    totalViewer = new MergeTotalViewer(totalComposite);
    totalViewer.setInput(treeViewer);

    if (Platform.getOS().equals(Platform.OS_LINUX)) {
      syncTreeTableScrollBars();
    }

    IWorkbenchPage page = getSite().getPage();
    IEditorPart activeEditor = page.getActiveEditor();
    if ((activeEditor != null) && (activeEditor.getEditorInput() == input)) {
      treeViewer.setSelection(page.getSelection());
    }

    // make sure all the row/column sizes are correct given the current font
    setupFonts(editorComposite, treeComposite, totalComposite);

    MenuManager menuManager =
        WidgetUtils.createContextMenu(
            treeComposite.getTree(),
            new IMenuListener() {
              @Override
              public void menuAboutToShow(IMenuManager mgr) {
                fillContextMenu(mgr);
              }
            });
    // allow extensions to the context menu but not those based on the editor input
    getEditorSite().registerContextMenu(menuManager, getSelectionProvider(), false);
  }
Example #6
0
 @Override
 public void toggleFlatten() {
   MergeTreeContentProvider provider = (MergeTreeContentProvider) treeViewer.getContentProvider();
   provider.toggleFlatten();
   treeViewer.refresh();
 }
Example #7
0
 @Override
 public void refresh() {
   treeViewer.refresh();
 }