Search in sources :

Example 6 with ISelectionListener

use of org.eclipse.ui.ISelectionListener in project webtools.sourceediting by eclipse.

the class ShowPropertiesAction method run.

public void run() {
    super.run();
    if (fSelectionProvider != null) {
        IWorkbenchWindow window = SSEUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow();
        IWorkbenchPage page = window.getActivePage();
        if (page != null) {
            IViewPart findView = page.findView(getViewID());
            if (findView instanceof ISelectionListener && fPart != null) {
                ((ISelectionListener) findView).selectionChanged(fPart, fSelectionProvider.getSelection());
            } else {
                findView.getViewSite().getSelectionProvider().setSelection(fSelectionProvider.getSelection());
            }
        }
    }
}
Also used : IWorkbenchWindow(org.eclipse.ui.IWorkbenchWindow) IViewPart(org.eclipse.ui.IViewPart) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage) ISelectionListener(org.eclipse.ui.ISelectionListener)

Example 7 with ISelectionListener

use of org.eclipse.ui.ISelectionListener in project hale by halestudio.

the class MappingView method createViewControl.

@Override
public void createViewControl(Composite parent) {
    super.createViewControl(parent);
    updateLayout(false);
    getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(selectionListener = new ISelectionListener() {

        @Override
        public void selectionChanged(IWorkbenchPart part, ISelection selection) {
            if (!(selection instanceof SchemaSelection)) {
                // only react on schema selections
                return;
            }
            if (part != MappingView.this) {
                update((SchemaSelection) selection);
            }
        }
    });
    AlignmentService as = PlatformUI.getWorkbench().getService(AlignmentService.class);
    // update();
    as.addListener(alignmentListener = new AlignmentServiceAdapter() {

        @Override
        public void cellsRemoved(Iterable<Cell> cells) {
            updateViewWithCurrentSelection(cells);
        }

        @Override
        public void cellsReplaced(Map<? extends Cell, ? extends Cell> cells) {
            List<Cell> changedCells = new ArrayList<Cell>(2);
            changedCells.addAll(cells.keySet());
            changedCells.addAll(cells.values());
            updateViewWithCurrentSelection(changedCells);
        }

        @Override
        public void customFunctionsChanged() {
            SchemaSelection current = SchemaSelectionHelper.getSchemaSelection();
            if (current != null) {
                update(current);
            }
        }

        @Override
        public void cellsAdded(Iterable<Cell> cells) {
            updateViewWithCurrentSelection(cells);
        }

        @Override
        public void cellsPropertyChanged(Iterable<Cell> cells, String propertyName) {
            updateViewWithCurrentSelection(cells);
        }
    });
    TaskService taskService = PlatformUI.getWorkbench().getService(TaskService.class);
    taskService.addListener(new TaskServiceListener() {

        @Override
        public void tasksRemoved(Iterable<Task<?>> tasks) {
            updateViewWithCurrentSelection(getAffectedCells(tasks));
        }

        @Override
        public void tasksAdded(Iterable<Task<?>> tasks) {
            updateViewWithCurrentSelection(getAffectedCells(tasks));
        }

        @Override
        public void taskUserDataChanged(ResolvedTask<?> task) {
            updateViewWithCurrentSelection(getAffectedCells(Collections.singleton(task)));
        }

        private List<Cell> getAffectedCells(Iterable<Task<?>> tasks) {
            List<Cell> affectedCells = new ArrayList<>();
            tasks.forEach(t -> {
                if (t.getMainContext() instanceof Cell) {
                    affectedCells.add((Cell) t.getMainContext());
                }
            });
            return affectedCells;
        }
    });
    SchemaSelection current = SchemaSelectionHelper.getSchemaSelection();
    if (current != null) {
        update(current);
    }
    // listen on size changes
    getViewer().getControl().addControlListener(new ControlAdapter() {

        @Override
        public void controlResized(ControlEvent e) {
            updateLayout(true);
        }
    });
}
Also used : ArrayListMultimap(com.google.common.collect.ArrayListMultimap) Cell(eu.esdihumboldt.hale.common.align.model.Cell) Dimension(org.eclipse.draw2d.geometry.Dimension) ListMultimap(com.google.common.collect.ListMultimap) AlignmentServiceAdapter(eu.esdihumboldt.hale.ui.service.align.AlignmentServiceAdapter) HaleUI(eu.esdihumboldt.hale.ui.HaleUI) Alignment(eu.esdihumboldt.hale.common.align.model.Alignment) ResolvedTask(eu.esdihumboldt.hale.common.tasks.ResolvedTask) IToolBarManager(org.eclipse.jface.action.IToolBarManager) AlignmentUtil(eu.esdihumboldt.hale.common.align.model.AlignmentUtil) TreeLayoutAlgorithm(org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm) MappingViewPlugin(eu.esdihumboldt.hale.ui.views.mapping.internal.MappingViewPlugin) ArrayList(java.util.ArrayList) ControlEvent(org.eclipse.swt.events.ControlEvent) GraphLabelProvider(eu.esdihumboldt.hale.ui.common.graph.labels.GraphLabelProvider) HashSet(java.util.HashSet) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) Type(eu.esdihumboldt.hale.common.align.model.Type) GraphViewer(org.eclipse.zest.core.viewers.GraphViewer) DefaultCell(eu.esdihumboldt.hale.common.align.model.impl.DefaultCell) ISelectionListener(org.eclipse.ui.ISelectionListener) Composite(org.eclipse.swt.widgets.Composite) Map(java.util.Map) Pair(eu.esdihumboldt.util.Pair) AlignmentService(eu.esdihumboldt.hale.ui.service.align.AlignmentService) DefaultType(eu.esdihumboldt.hale.common.align.model.impl.DefaultType) WorkbenchPart(org.eclipse.ui.part.WorkbenchPart) PlatformUI(org.eclipse.ui.PlatformUI) TaskServiceListener(eu.esdihumboldt.hale.common.tasks.TaskServiceListener) Collection(java.util.Collection) Set(java.util.Set) IBaseLabelProvider(org.eclipse.jface.viewers.IBaseLabelProvider) Action(org.eclipse.jface.action.Action) SchemaSelection(eu.esdihumboldt.hale.ui.selection.SchemaSelection) LayoutAlgorithm(org.eclipse.zest.layouts.LayoutAlgorithm) TaskService(eu.esdihumboldt.hale.common.tasks.TaskService) List(java.util.List) AlignmentServiceListener(eu.esdihumboldt.hale.ui.service.align.AlignmentServiceListener) ControlAdapter(org.eclipse.swt.events.ControlAdapter) ISelection(org.eclipse.jface.viewers.ISelection) EntityDefinition(eu.esdihumboldt.hale.common.align.model.EntityDefinition) Task(eu.esdihumboldt.hale.common.tasks.Task) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) Collections(java.util.Collections) SchemaSelectionHelper(eu.esdihumboldt.hale.ui.selection.SchemaSelectionHelper) ResolvedTask(eu.esdihumboldt.hale.common.tasks.ResolvedTask) Task(eu.esdihumboldt.hale.common.tasks.Task) ControlAdapter(org.eclipse.swt.events.ControlAdapter) TaskService(eu.esdihumboldt.hale.common.tasks.TaskService) ArrayList(java.util.ArrayList) ISelectionListener(org.eclipse.ui.ISelectionListener) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) AlignmentService(eu.esdihumboldt.hale.ui.service.align.AlignmentService) ISelection(org.eclipse.jface.viewers.ISelection) ArrayList(java.util.ArrayList) List(java.util.List) TaskServiceListener(eu.esdihumboldt.hale.common.tasks.TaskServiceListener) SchemaSelection(eu.esdihumboldt.hale.ui.selection.SchemaSelection) ControlEvent(org.eclipse.swt.events.ControlEvent) AlignmentServiceAdapter(eu.esdihumboldt.hale.ui.service.align.AlignmentServiceAdapter) Map(java.util.Map) Cell(eu.esdihumboldt.hale.common.align.model.Cell) DefaultCell(eu.esdihumboldt.hale.common.align.model.impl.DefaultCell)

Example 8 with ISelectionListener

use of org.eclipse.ui.ISelectionListener in project hale by halestudio.

the class AlignmentView method createViewControl.

/**
 * @see eu.esdihumboldt.hale.ui.views.mapping.AbstractMappingView#createViewControl(org.eclipse.swt.widgets.Composite)
 */
@Override
public void createViewControl(Composite parent) {
    Composite page = new Composite(parent, SWT.NONE);
    page.setLayout(GridLayoutFactory.fillDefaults().create());
    // create type relation selection control
    sourceTargetSelector = new SourceTargetTypeSelector(page);
    sourceTargetSelector.getControl().setLayoutData(GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).create());
    sourceTargetSelector.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            getViewer().setInput(sourceTargetSelector.getSelectedCell());
            if (deactivatedCellFilterAction != null) {
                deactivatedCellFilterAction.setEnabled(sourceTargetSelector.isCellSelected());
                if (!sourceTargetSelector.isCellSelected())
                    deactivatedCellFilterAction.setChecked(true);
            }
            refreshGraph();
        }
    });
    // typeRelations = new ComboViewer(page, SWT.DROP_DOWN | SWT.READ_ONLY);
    // typeRelations.setContentProvider(ArrayContentProvider.getInstance());
    // typeRelations.setLabelProvider(new LabelProvider() {
    // 
    // @Override
    // public Image getImage(Object element) {
    // if (element instanceof Cell) {
    // // use function image if possible
    // Cell cell = (Cell) element;
    // String functionId = cell.getTransformationIdentifier();
    // AbstractFunction<?> function = FunctionUtil.getFunction(functionId);
    // if (function != null) {
    // return functionLabels.getImage(function);
    // }
    // return null;
    // }
    // 
    // return super.getImage(element);
    // }
    // 
    // @Override
    // public String getText(Object element) {
    // if (element instanceof Cell) {
    // Cell cell = (Cell) element;
    // 
    // return CellUtil.getCellDescription(cell);
    // }
    // 
    // return super.getText(element);
    // }
    // 
    // });
    // typeRelations.addSelectionChangedListener(new ISelectionChangedListener() {
    // 
    // @Override
    // public void selectionChanged(SelectionChangedEvent event) {
    // updateGraph();
    // }
    // });
    // typeRelations.getControl().setLayoutData(
    // GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false)
    // .create());
    // create viewer
    Composite viewerContainer = new Composite(page, SWT.NONE);
    viewerContainer.setLayout(new FillLayout());
    viewerContainer.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    super.createViewControl(viewerContainer);
    updateLayout(false);
    AlignmentService as = PlatformUI.getWorkbench().getService(AlignmentService.class);
    // update();
    as.addListener(alignmentListener = new AlignmentServiceAdapter() {

        @Override
        public void alignmentCleared() {
            PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {

                @Override
                public void run() {
                    sourceTargetSelector.setSelection(StructuredSelection.EMPTY);
                }
            });
        }

        @Override
        public void cellsRemoved(Iterable<Cell> cells) {
            if (sourceTargetSelector.isCellSelected() && Iterables.contains(cells, sourceTargetSelector.getSelectedCell()))
                sourceTargetSelector.setSelection(StructuredSelection.EMPTY);
            refreshGraph();
        }

        @Override
        public void cellsReplaced(Map<? extends Cell, ? extends Cell> cells) {
            if (sourceTargetSelector.isCellSelected() && cells.keySet().contains(sourceTargetSelector.getSelectedCell()))
                sourceTargetSelector.setSelection(StructuredSelection.EMPTY);
            refreshGraph();
        }

        @Override
        public void cellsAdded(Iterable<Cell> cells) {
            refreshGraph();
        }

        @Override
        public void alignmentChanged() {
            PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {

                @Override
                public void run() {
                    sourceTargetSelector.setSelection(StructuredSelection.EMPTY);
                }
            });
        }

        @Override
        public void cellsPropertyChanged(Iterable<Cell> cells, String propertyName) {
            refreshGraph();
        }

        @Override
        public void customFunctionsChanged() {
            refreshGraph();
        }
    });
    TaskService taskService = PlatformUI.getWorkbench().getService(TaskService.class);
    taskService.addListener(tasksListener = new TaskServiceListener() {

        @Override
        public void tasksRemoved(Iterable<Task<?>> tasks) {
            refreshGraph();
        }

        @Override
        public void tasksAdded(Iterable<Task<?>> tasks) {
            refreshGraph();
        }

        @Override
        public void taskUserDataChanged(ResolvedTask<?> task) {
            refreshGraph();
        }
    });
    // initialize compatibility checkup and display
    CompatibilityService cs = PlatformUI.getWorkbench().getService(CompatibilityService.class);
    cs.addListener(compListener = new ExclusiveExtensionListener<CompatibilityMode, CompatibilityModeFactory>() {

        @Override
        public void currentObjectChanged(final CompatibilityMode arg0, final CompatibilityModeFactory arg1) {
            refreshGraph();
        }
    });
    // listen on SchemaSelections
    getSite().getWorkbenchWindow().getSelectionService().addPostSelectionListener(selectionListener = new ISelectionListener() {

        @Override
        public void selectionChanged(IWorkbenchPart part, ISelection selection) {
            if (!(selection instanceof SchemaSelection)) {
                // only react on schema selections
                return;
            }
            if (part != AlignmentView.this) {
                updateRelation((SchemaSelection) selection);
            }
        }
    });
    // select type cell, if it is double clicked
    getViewer().addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (selection.size() == 1) {
                Object selected = selection.getFirstElement();
                if (selected instanceof Cell && AlignmentUtil.isTypeCell((Cell) selected))
                    sourceTargetSelector.setSelection(selection);
            }
        }
    });
    // listen on size changes
    getViewer().getControl().addControlListener(new ControlAdapter() {

        @Override
        public void controlResized(ControlEvent e) {
            updateLayout(true);
        }
    });
    getViewer().setInput(new DefaultCell());
}
Also used : CompatibilityModeFactory(eu.esdihumboldt.hale.ui.common.service.compatibility.CompatibilityModeFactory) ControlAdapter(org.eclipse.swt.events.ControlAdapter) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) SourceTargetTypeSelector(eu.esdihumboldt.hale.ui.function.common.SourceTargetTypeSelector) ISelectionListener(org.eclipse.ui.ISelectionListener) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) AlignmentService(eu.esdihumboldt.hale.ui.service.align.AlignmentService) ResolvedTask(eu.esdihumboldt.hale.common.tasks.ResolvedTask) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) ISelection(org.eclipse.jface.viewers.ISelection) CompatibilityService(eu.esdihumboldt.hale.ui.common.service.compatibility.CompatibilityService) SchemaSelection(eu.esdihumboldt.hale.ui.selection.SchemaSelection) DefaultCell(eu.esdihumboldt.hale.common.align.model.impl.DefaultCell) BaseAlignmentCell(eu.esdihumboldt.hale.common.align.model.BaseAlignmentCell) Cell(eu.esdihumboldt.hale.common.align.model.Cell) Composite(org.eclipse.swt.widgets.Composite) CompatibilityMode(eu.esdihumboldt.hale.common.align.compatibility.CompatibilityMode) TaskService(eu.esdihumboldt.hale.common.tasks.TaskService) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) ExclusiveExtensionListener(de.fhg.igd.eclipse.util.extension.exclusive.ExclusiveExtension.ExclusiveExtensionListener) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) FillLayout(org.eclipse.swt.layout.FillLayout) DefaultCell(eu.esdihumboldt.hale.common.align.model.impl.DefaultCell) TaskServiceListener(eu.esdihumboldt.hale.common.tasks.TaskServiceListener) ControlEvent(org.eclipse.swt.events.ControlEvent) AlignmentServiceAdapter(eu.esdihumboldt.hale.ui.service.align.AlignmentServiceAdapter) Map(java.util.Map)

Example 9 with ISelectionListener

use of org.eclipse.ui.ISelectionListener in project webtools.sourceediting by eclipse.

the class ToggleBreakpointAction method createBreakpoints.

protected boolean createBreakpoints(int lineNumber) {
    /*
		 * Note: we'll always allow processing to continue, even for a "read
		 * only" IStorageEditorInput, for the ActiveScript debugger. But this
		 * means sometimes the ActiveScript provider might get an input from
		 * CVS or something that is not related to debugging.
		 */
    ITextEditor editor = getTextEditor();
    IEditorInput input = editor.getEditorInput();
    IDocument document = editor.getDocumentProvider().getDocument(input);
    if (document == null)
        return false;
    String contentType = getContentType(document);
    IBreakpointProvider[] providers = BreakpointProviderBuilder.getInstance().getBreakpointProviders(editor, contentType, getFileExtension(input));
    int pos = -1;
    ISourceEditingTextTools tools = editor.getAdapter(ISourceEditingTextTools.class);
    if (tools != null) {
        pos = tools.getCaretOffset();
    }
    final int n = providers.length;
    List<IStatus> errors = new ArrayList<>(0);
    for (int i = 0; i < n; i++) {
        try {
            if (Debug.debugBreakpoints)
                // $NON-NLS-1$
                System.out.println(providers[i].getClass().getName() + " adding breakpoint to line " + lineNumber);
            IStatus status = providers[i].addBreakpoint(document, input, lineNumber, pos);
            if (status != null && !status.isOK()) {
                errors.add(status);
            }
        } catch (CoreException e) {
            errors.add(e.getStatus());
        } catch (Exception t) {
            // $NON-NLS-1$
            Logger.logException("exception while adding breakpoint", t);
        }
    }
    IStatus status = null;
    if (errors.size() > 0) {
        Shell shell = editor.getSite().getShell();
        if (errors.size() > 1) {
            // $NON-NLS-1$
            status = new MultiStatus(SSEUIPlugin.ID, IStatus.OK, errors.toArray(new IStatus[0]), SSEUIMessages.ManageBreakpoints_error_adding_message1, null);
        } else {
            status = errors.get(0);
        }
        if ((status.getSeverity() > IStatus.INFO) || (Platform.inDebugMode() && !status.isOK())) {
            Platform.getLog(SSEUIPlugin.getDefault().getBundle()).log(status);
        }
        /*
			 * Show for conditions more severe than INFO or when no
			 * breakpoints were created
			 */
        if (status.getSeverity() > IStatus.INFO && getBreakpoints(getMarkers()).length < 1) {
            // $NON-NLS-1$ //$NON-NLS-2$
            ErrorDialog.openError(shell, SSEUIMessages.ManageBreakpoints_error_adding_title1, status.getMessage(), status);
            return false;
        }
    }
    /*
		 * Although no errors were reported, no breakpoints exist on this line
		 * after having run the existing providers. Run the fallback action.
		 */
    if ((status == null || status.getSeverity() < IStatus.WARNING) && fFallbackAction != null && !hasMarkers()) {
        if (fFallbackAction instanceof ISelectionListener) {
            ((ISelectionListener) fFallbackAction).selectionChanged(null, null);
        }
        fFallbackAction.run();
    }
    return true;
}
Also used : IStatus(org.eclipse.core.runtime.IStatus) ITextEditor(org.eclipse.ui.texteditor.ITextEditor) ArrayList(java.util.ArrayList) MultiStatus(org.eclipse.core.runtime.MultiStatus) IBreakpoint(org.eclipse.debug.core.model.IBreakpoint) CoreException(org.eclipse.core.runtime.CoreException) ISelectionListener(org.eclipse.ui.ISelectionListener) Shell(org.eclipse.swt.widgets.Shell) CoreException(org.eclipse.core.runtime.CoreException) ISourceEditingTextTools(org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools) IBreakpointProvider(org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointProvider) IEditorInput(org.eclipse.ui.IEditorInput) IDocument(org.eclipse.jface.text.IDocument)

Example 10 with ISelectionListener

use of org.eclipse.ui.ISelectionListener in project netxms by netxms.

the class DashboardDynamicView method createPartControl.

/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets
	 * .Composite)
	 */
@Override
public void createPartControl(Composite parent) {
    selectionProvider = new IntermediateSelectionProvider();
    getSite().setSelectionProvider(selectionProvider);
    parentComposite = parent;
    if (dashboard != null)
        dbc = new DashboardControl(parent, SWT.NONE, dashboard, this, selectionProvider, false);
    createActions();
    contributeToActionBars();
    selectionService = getSite().getWorkbenchWindow().getSelectionService();
    selectionListener = new ISelectionListener() {

        @Override
        public void selectionChanged(IWorkbenchPart part, ISelection selection) {
            if ((part instanceof DashboardNavigator) && (selection instanceof IStructuredSelection) && !selection.isEmpty()) {
                Object object = ((IStructuredSelection) selection).getFirstElement();
                if (object instanceof Dashboard) {
                    setObject((Dashboard) object);
                }
            }
        }
    };
    selectionService.addSelectionListener(selectionListener);
}
Also used : IntermediateSelectionProvider(org.netxms.ui.eclipse.tools.IntermediateSelectionProvider) DashboardControl(org.netxms.ui.eclipse.dashboard.widgets.DashboardControl) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) ISelection(org.eclipse.jface.viewers.ISelection) Dashboard(org.netxms.client.objects.Dashboard) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ISelectionListener(org.eclipse.ui.ISelectionListener)

Aggregations

ISelectionListener (org.eclipse.ui.ISelectionListener)15 ISelection (org.eclipse.jface.viewers.ISelection)12 IWorkbenchPart (org.eclipse.ui.IWorkbenchPart)12 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)11 Composite (org.eclipse.swt.widgets.Composite)6 TreeViewer (org.eclipse.jface.viewers.TreeViewer)4 ArrayList (java.util.ArrayList)3 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)3 IEditorInput (org.eclipse.ui.IEditorInput)3 ISelectionService (org.eclipse.ui.ISelectionService)3 Cell (eu.esdihumboldt.hale.common.align.model.Cell)2 DefaultCell (eu.esdihumboldt.hale.common.align.model.impl.DefaultCell)2 ResolvedTask (eu.esdihumboldt.hale.common.tasks.ResolvedTask)2 TaskService (eu.esdihumboldt.hale.common.tasks.TaskService)2 TaskServiceListener (eu.esdihumboldt.hale.common.tasks.TaskServiceListener)2 SchemaSelection (eu.esdihumboldt.hale.ui.selection.SchemaSelection)2 AlignmentService (eu.esdihumboldt.hale.ui.service.align.AlignmentService)2 AlignmentServiceAdapter (eu.esdihumboldt.hale.ui.service.align.AlignmentServiceAdapter)2 PropertiesViewPart (eu.esdihumboldt.hale.ui.views.properties.PropertiesViewPart)2 Map (java.util.Map)2