List of usage examples for org.eclipse.jface.viewers ViewerComparator ViewerComparator
public ViewerComparator()
From source file:ext.org.eclipse.jdt.internal.ui.wizards.buildpaths.SetFilterWizardPage.java
License:Open Source License
private ListDialogField<String> createListContents(CPListElement entryToEdit, String key, String label, ImageDescriptor descriptor, String[] buttonLabels) { ExclusionPatternAdapter adapter = new ExclusionPatternAdapter(); ListDialogField<String> patternList = new ListDialogField<String>(adapter, buttonLabels, new ExclusionInclusionLabelProvider(descriptor)); patternList.setDialogFieldListener(adapter); patternList.setLabelText(label);/*from ww w . j a va2 s. c o m*/ patternList.enableButton(IDX_EDIT, false); IPath[] pattern = (IPath[]) entryToEdit.getAttribute(key); ArrayList<String> elements = new ArrayList<String>(pattern.length); for (int i = 0; i < pattern.length; i++) { String patternName = pattern[i].toString(); if (patternName.length() > 0) elements.add(patternName); } patternList.setElements(elements); patternList.selectFirstElement(); patternList.enableButton(IDX_ADD_MULTIPLE, fCurrSourceFolder != null); patternList.setViewerComparator(new ViewerComparator()); return patternList; }
From source file:ext.org.eclipse.jdt.internal.ui.wizards.buildpaths.VariableBlock.java
License:Open Source License
public VariableBlock(boolean inPreferencePage, String initSelection) { fSelectedElements = new ArrayList<CPVariableElement>(0); fEditOnDoubleclick = inPreferencePage; fAskToBuild = true;//from w w w .j ava 2 s. c o m String[] buttonLabels = new String[] { NewWizardMessages.VariableBlock_vars_add_button, NewWizardMessages.VariableBlock_vars_edit_button, NewWizardMessages.VariableBlock_vars_remove_button }; VariablesAdapter adapter = new VariablesAdapter(); CPVariableElementLabelProvider labelProvider = new CPVariableElementLabelProvider(inPreferencePage); fVariablesList = new ListDialogField<CPVariableElement>(adapter, buttonLabels, labelProvider); fVariablesList.setDialogFieldListener(adapter); fVariablesList.setLabelText(NewWizardMessages.VariableBlock_vars_label); fVariablesList.setRemoveButtonIndex(2); fVariablesList.enableButton(1, false); fVariablesList.setViewerComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { if (e1 instanceof CPVariableElement && e2 instanceof CPVariableElement) { return getComparator().compare(((CPVariableElement) e1).getName(), ((CPVariableElement) e2).getName()); } return super.compare(viewer, e1, e2); } }); refresh(initSelection); }
From source file:fr.inria.atlanmod.emftocsp.ui.widgets.impl.ElementSelectionWidget.java
License:Open Source License
private void createContents() { setLayout(new FormLayout()); FormData formData = new FormData(); formData.left = new FormAttachment(0, 0); formData.top = new FormAttachment(0, 0); formData.right = new FormAttachment(100, -5); formData.bottom = new FormAttachment(90, 0/*-5*/); final DrillDownComposite ddComposite = new DrillDownComposite(this, SWT.BORDER); ddComposite.setLayoutData(formData); treeViewer = new TreeViewer(ddComposite); ddComposite.setChildTree(treeViewer); if (!mandatorySelection) { FormData formData2 = new FormData(); formData2.left = new FormAttachment(0, 0); formData2.top = new FormAttachment(90, 0); formData2.right = new FormAttachment(100, -5); formData2.bottom = new FormAttachment(100, 0/*-5*/); chkDisableSelection = new Button(this, SWT.CHECK); chkDisableSelection.setLayoutData(formData2); chkDisableSelection.setText("Skip selection"); chkDisableSelection.addSelectionListener(new SelectionAdapter() { public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { ddComposite.setEnabled(!chkDisableSelection.getSelection()); treeViewer.getControl().setEnabled(!chkDisableSelection.getSelection()); if (!ddComposite.getEnabled()) elementSelectionChanged(null); else elementSelectionChanged((IStructuredSelection) treeViewer.getSelection()); }/* www . j a v a 2 s . c om*/ }); } treeViewer.setComparator(new ViewerComparator()); treeViewer.setUseHashlookup(true); treeViewer.setContentProvider(new TreeContentProvider()); treeViewer.setLabelProvider(new TreeLabelProvider()); treeViewer.setInput(ResourcesPlugin.getWorkspace().getRoot().getProjects()); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { elementSelectionChanged((IStructuredSelection) event.getSelection()); } }); }
From source file:fr.inria.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnDataProvider.java
License:Open Source License
/** * Create basic columns to represent the statistics data */// w w w .j a v a 2 s . c o m public TmfBaseColumnDataProvider() { /* List that will be used to create the table. */ ImmutableList.Builder<TmfBaseColumnData> builder = new ImmutableList.Builder<>(); /* Column showing the name of the events and its level in the tree */ builder.add(new TmfBaseColumnData(LEVEL_COLUMN, 200, SWT.LEFT, LEVEL_COLUMN_TIP, new ColumnLabelProvider() { @Override public String getText(Object element) { return ((TmfStatisticsTreeNode) element).getName(); } @Override public Image getImage(Object element) { TmfStatisticsTreeNode node = (TmfStatisticsTreeNode) element; if (HIDDEN_FOLDER_LEVELS.contains(node.getName())) { return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER); } return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT); } }, new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { TmfStatisticsTreeNode n1 = (TmfStatisticsTreeNode) e1; TmfStatisticsTreeNode n2 = (TmfStatisticsTreeNode) e2; return n1.getName().compareTo(n2.getName()); } }, null)); /* Column showing the total number of events */ builder.add(new TmfBaseColumnData(EVENTS_COUNT_COLUMN, 140, SWT.RIGHT, EVENTS_COUNT_COLUMN_TIP, new ColumnLabelProvider() { @Override public String getText(Object element) { TmfStatisticsTreeNode node = (TmfStatisticsTreeNode) element; if (!HIDDEN_FOLDER_LEVELS.contains(node.getName())) { return TmfStatisticsFormatter.toColumnData(node, StatsColumn.TOTAL); } return EMPTY_STRING; } }, new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { TmfStatisticsTreeNode n1 = (TmfStatisticsTreeNode) e1; TmfStatisticsTreeNode n2 = (TmfStatisticsTreeNode) e2; return (int) (n1.getValues().getTotal() - n2.getValues().getTotal()); } }, new ITmfColumnPercentageProvider() { @Override public double getPercentage(TmfStatisticsTreeNode node) { TmfStatisticsTreeNode top = node.getTop(); return (top == null || top.getValues().getTotal() == 0) ? 0 : (double) (node.getValues().getTotal()) / top.getValues().getTotal(); } })); /* Column showing the number of events within the selected time range */ builder.add(new TmfBaseColumnData(PARTIAL_EVENTS_COUNT_COLUMN, 140, SWT.RIGHT, PARTIAL_COUNT_COLUMN_TIP, new ColumnLabelProvider() { @Override public String getText(Object element) { TmfStatisticsTreeNode node = (TmfStatisticsTreeNode) element; if (!HIDDEN_FOLDER_LEVELS.contains(node.getName())) { return TmfStatisticsFormatter.toColumnData(node, StatsColumn.PARTIAL); } return EMPTY_STRING; } }, new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { TmfStatisticsTreeNode n1 = (TmfStatisticsTreeNode) e1; TmfStatisticsTreeNode n2 = (TmfStatisticsTreeNode) e2; return (int) (n1.getValues().getPartial() - n2.getValues().getPartial()); } }, new ITmfColumnPercentageProvider() { @Override public double getPercentage(TmfStatisticsTreeNode node) { TmfStatisticsTreeNode top = node.getTop(); return (top == null || top.getValues().getPartial() == 0) ? 0 : (double) (node.getValues().getPartial()) / top.getValues().getPartial(); } })); /* Dummy column used to "fix" the display on Linux (using GTK) */ builder.add(new TmfBaseColumnData(EMPTY_STRING, 1, SWT.RIGHT, EMPTY_STRING, new ColumnLabelProvider() { @Override public String getText(Object element) { return EMPTY_STRING; } }, new ViewerComparator(), new ITmfColumnPercentageProvider() { @Override public double getPercentage(TmfStatisticsTreeNode node) { return 0; } })); fColumnData = builder.build(); }
From source file:fr.inria.linuxtools.tmf.ui.viewers.statistics.TmfStatisticsViewer.java
License:Open Source License
/** * Initialize the content that will be drawn in this viewer * * @param parent/*from w w w . j a v a 2 s . c o m*/ * The parent of the control to create */ protected void initContent(Composite parent) { final List<TmfBaseColumnData> columnDataList = getColumnDataProvider().getColumnData(); fTreeViewer = new TreeViewer(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); fTreeViewer.setContentProvider(new TmfTreeContentProvider()); fTreeViewer.getTree().setHeaderVisible(true); fTreeViewer.setUseHashlookup(true); // Creates the columns defined by the column data provider for (final TmfBaseColumnData columnData : columnDataList) { final TreeViewerColumn treeColumn = new TreeViewerColumn(fTreeViewer, columnData.getAlignment()); treeColumn.getColumn().setText(columnData.getHeader()); treeColumn.getColumn().setWidth(columnData.getWidth()); treeColumn.getColumn().setToolTipText(columnData.getTooltip()); // If is dummy column if (columnData == columnDataList.get(TmfBaseColumnDataProvider.StatsColumn.DUMMY.getIndex())) { treeColumn.getColumn().setResizable(false); } // A comparator is defined. if (columnData.getComparator() != null) { // Adds a listener on the columns header for sorting purpose. treeColumn.getColumn().addSelectionListener(new SelectionAdapter() { private ViewerComparator reverseComparator; @Override public void widgetSelected(SelectionEvent e) { // Initializes the reverse comparator once. if (reverseComparator == null) { reverseComparator = new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { return -1 * columnData.getComparator().compare(viewer, e1, e2); } }; } if (fTreeViewer.getTree().getSortDirection() == SWT.UP || fTreeViewer.getTree().getSortColumn() != treeColumn.getColumn()) { /* * Puts the descendant order if the old order was up * or if the selected column has changed. */ fTreeViewer.setComparator(columnData.getComparator()); fTreeViewer.getTree().setSortDirection(SWT.DOWN); } else { /* * Puts the ascendant ordering if the selected * column hasn't changed. */ fTreeViewer.setComparator(reverseComparator); fTreeViewer.getTree().setSortDirection(SWT.UP); } fTreeViewer.getTree().setSortColumn(treeColumn.getColumn()); } }); } treeColumn.setLabelProvider(columnData.getLabelProvider()); } // Handler that will draw the percentages and the bar charts. fTreeViewer.getTree().addListener(SWT.EraseItem, new Listener() { @Override public void handleEvent(Event event) { if (columnDataList.get(event.index).getPercentageProvider() != null) { TmfStatisticsTreeNode node = (TmfStatisticsTreeNode) event.item.getData(); // If node is hidden, exit immediately. if (TmfBaseColumnDataProvider.HIDDEN_FOLDER_LEVELS.contains(node.getName())) { return; } // Otherwise, get percentage and draw bar and text if applicable. double percentage = columnDataList.get(event.index).getPercentageProvider().getPercentage(node); // The item is selected. if ((event.detail & SWT.SELECTED) > 0) { // Draws our own background to avoid overwriting the bar. event.gc.fillRectangle(event.x, event.y, event.width, event.height); event.detail &= ~SWT.SELECTED; } // Drawing the percentage text // if events are present in top node // and the current node is not the top node // and if is total or partial events column. // If not, exit the method. if (!((event.index == TmfBaseColumnDataProvider.StatsColumn.TOTAL.getIndex() || event.index == TmfBaseColumnDataProvider.StatsColumn.PARTIAL.getIndex()) && node != node.getTop())) { return; } long eventValue = event.index == TmfBaseColumnDataProvider.StatsColumn.TOTAL.getIndex() ? node.getTop().getValues().getTotal() : node.getTop().getValues().getPartial(); if (eventValue != 0) { int oldAlpha = event.gc.getAlpha(); Color oldForeground = event.gc.getForeground(); Color oldBackground = event.gc.getBackground(); // Bar to draw if (percentage != 0) { /* * Draws a transparent gradient rectangle from the * color of foreground and background. */ int barWidth = (int) ((fTreeViewer.getTree().getColumn(event.index).getWidth() - 8) * percentage); event.gc.setAlpha(64); event.gc.setForeground(event.item.getDisplay().getSystemColor(SWT.COLOR_BLUE)); event.gc.setBackground( event.item.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND)); event.gc.fillGradientRectangle(event.x, event.y, barWidth, event.height, true); event.gc.drawRectangle(event.x, event.y, barWidth, event.height); // Restore old values event.gc.setBackground(oldBackground); event.gc.setAlpha(oldAlpha); event.detail &= ~SWT.BACKGROUND; } String percentageText = TmfStatisticsFormatter.toPercentageText(percentage); String absoluteNumberText = TmfStatisticsFormatter.toColumnData(node, TmfBaseColumnDataProvider.StatsColumn.getColumn(event.index)); if (event.width > event.gc.stringExtent(percentageText).x + event.gc.stringExtent(absoluteNumberText).x) { int textHeight = event.gc.stringExtent(percentageText).y; event.gc.setForeground(event.item.getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY)); event.gc.drawText(percentageText, event.x, event.y + (event.height - textHeight) / 2, true); } // Restores old values event.gc.setForeground(oldForeground); } } } }); // Initializes the comparator parameters fTreeViewer.setComparator(columnDataList.get(0).getComparator()); fTreeViewer.getTree().setSortColumn(fTreeViewer.getTree().getColumn(0)); fTreeViewer.getTree().setSortDirection(SWT.DOWN); }
From source file:fr.inria.linuxtools.tmf.ui.viewers.tree.TmfTreeColumnData.java
License:Open Source License
/** * Create a TreeColumn with this column's data and adds it to a {@link Tree} * * @param treeViewer/*from www . j a v a2 s. c om*/ * The {@link TreeViewer} object to add the column to * @return The newly created {@link TreeViewerColumn} */ @NonNull public TreeViewerColumn createColumn(final TreeViewer treeViewer) { final TreeViewerColumn column = new TreeViewerColumn(treeViewer, getAlignment()); final TmfTreeColumnData columnData = this; column.getColumn().setText(getText()); if (getWidth() != -1) { column.getColumn().setWidth(getWidth()); } if (getTooltip() != null) { column.getColumn().setToolTipText(getTooltip()); } column.getColumn().setMoveable(isMovable()); /* Add the comparator to sort the column */ if (getComparator() != null) { column.getColumn().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (treeViewer.getTree().getSortDirection() == SWT.UP || treeViewer.getTree().getSortColumn() != column.getColumn()) { /* * Puts the descendant order if the old order was up * or if the selected column has changed. */ treeViewer.setComparator(columnData.getComparator()); treeViewer.getTree().setSortDirection(SWT.DOWN); } else { ViewerComparator reverseComparator; /* Initializes the reverse comparator. */ reverseComparator = new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { return -1 * columnData.getComparator().compare(viewer, e1, e2); } }; /* * Puts the ascendant ordering if the selected * column hasn't changed. */ treeViewer.setComparator(reverseComparator); treeViewer.getTree().setSortDirection(SWT.UP); } treeViewer.getTree().setSortColumn(column.getColumn()); } }); } return column; }
From source file:fr.inria.linuxtools.tmf.ui.views.statesystem.TmfStateSystemViewer.java
License:Open Source License
@Override protected ITmfTreeColumnDataProvider getColumnDataProvider() { return new ITmfTreeColumnDataProvider() { @Override//from w ww.j av a 2s . c o m public List<TmfTreeColumnData> getColumnData() { List<TmfTreeColumnData> columns = new ArrayList<>(); TmfTreeColumnData column = new TmfTreeColumnData(Messages.TreeNodeColumnLabel); columns.add(column); column.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { TmfTreeViewerEntry n1 = (TmfTreeViewerEntry) e1; TmfTreeViewerEntry n2 = (TmfTreeViewerEntry) e2; return n1.getName().compareTo(n2.getName()); } }); columns.add(new TmfTreeColumnData(Messages.QuarkColumnLabel)); columns.add(new TmfTreeColumnData(Messages.ValueColumnLabel)); columns.add(new TmfTreeColumnData(Messages.TypeColumnLabel)); columns.add(new TmfTreeColumnData(Messages.StartTimeColumLabel)); columns.add(new TmfTreeColumnData(Messages.EndTimeColumLabel)); columns.add(new TmfTreeColumnData(Messages.AttributePathColumnLabel)); return columns; } }; }
From source file:fr.inria.soctrace.framesoc.ui.histogram.view.HistogramView.java
License:Open Source License
@Override public void createFramesocPartControl(Composite parent) { statusLineManager = getViewSite().getActionBars().getStatusLineManager(); // parent layout GridLayout gl_parent = new GridLayout(1, false); gl_parent.verticalSpacing = 2;/*from ww w . j av a 2s. c o m*/ gl_parent.marginWidth = 0; gl_parent.horizontalSpacing = 0; gl_parent.marginHeight = 0; parent.setLayout(gl_parent); // Sash SashForm sashForm = new SashForm(parent, SWT.NONE); sashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); // Chart Composite compositeChart = new Composite(sashForm, SWT.BORDER); FillLayout fl_compositeChart = new FillLayout(SWT.HORIZONTAL); compositeChart.setLayout(fl_compositeChart); compositeChart.addControlListener(new ControlAdapter() { @Override public void controlResized(ControlEvent e) { int width = Math.max(compositeChart.getSize().x - 40, 1); numberOfTicks = Math.max(width / TIMESTAMP_MAX_SIZE, 1); refresh(false, false, true); } }); // Configuration Composite compositeConf = new Composite(sashForm, SWT.NONE); GridLayout gl_compositeConf = new GridLayout(1, false); gl_compositeConf.marginHeight = 1; gl_compositeConf.verticalSpacing = 0; gl_compositeConf.marginWidth = 0; compositeConf.setLayout(gl_compositeConf); compositeConf.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); // Tab folder TabFolder tabFolder = new TabFolder(compositeConf, SWT.NONE); tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); PatternFilter filter = new TreePatternFilter(); TreeContentProvider contentProvider = new TreeContentProvider(); ViewerComparator treeComparator = new ViewerComparator(); SelectionChangedListener selectionChangeListener = new SelectionChangedListener(); CheckStateListener checkStateListener = new CheckStateListener(); SquareIconLabelProvider p = null; // Tab item types TabItem tbtmEventTypes = new TabItem(tabFolder, SWT.NONE); tbtmEventTypes.setData(ConfigurationDimension.TYPE); tbtmEventTypes.setText(ConfigurationDimension.TYPE.getName()); filter.setIncludeLeadingWildcard(true); FilteredCheckboxTree typeTree = new FilteredCheckboxTree(tabFolder, SWT.BORDER, filter, true); configurationMap.get(ConfigurationDimension.TYPE).tree = typeTree; typeTree.getViewer().setContentProvider(contentProvider); p = new EventTypeTreeLabelProvider(); labelProviders.add(p); typeTree.getViewer().setLabelProvider(p); typeTree.getViewer().setComparator(treeComparator); typeTree.addCheckStateListener(checkStateListener); typeTree.getViewer().addSelectionChangedListener(selectionChangeListener); tbtmEventTypes.setControl(typeTree); // Tab item producers TabItem tbtmEventProducers = new TabItem(tabFolder, SWT.NONE); tbtmEventProducers.setData(ConfigurationDimension.PRODUCERS); tbtmEventProducers.setText(ConfigurationDimension.PRODUCERS.getName()); FilteredCheckboxTree prodTree = new FilteredCheckboxTree(tabFolder, SWT.BORDER, filter, true); configurationMap.get(ConfigurationDimension.PRODUCERS).tree = prodTree; prodTree.getViewer().setContentProvider(contentProvider); p = new EventProducerTreeLabelProvider(); labelProviders.add(p); prodTree.getViewer().setLabelProvider(p); prodTree.getViewer().setComparator(treeComparator); prodTree.addCheckStateListener(checkStateListener); prodTree.getViewer().addSelectionChangedListener(selectionChangeListener); tbtmEventProducers.setControl(prodTree); // sash weights sashForm.setWeights(new int[] { 80, 20 }); // tab switch tabFolder.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { currentDimension = (ConfigurationDimension) event.item.getData(); enableTreeButtons(); enableSubTreeButtons(); } }); // Buttons Composite compositeBtn = new Composite(compositeConf, SWT.BORDER); GridLayout gl_compositeBtn = new GridLayout(10, false); gl_compositeBtn.marginWidth = 1; gl_compositeBtn.horizontalSpacing = 1; compositeBtn.setLayout(gl_compositeBtn); compositeBtn.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, true, false, 1, 1)); btnCheckall = new Button(compositeBtn, SWT.NONE); btnCheckall.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false, 1, 1)); btnCheckall.setToolTipText("Check all"); btnCheckall.setImage(ResourceManager.getPluginImage(Activator.PLUGIN_ID, "icons/check_all.png")); btnCheckall.setEnabled(false); btnCheckall.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (configurationMap.get(currentDimension).roots != null) { FilteredCheckboxTree tree = configurationMap.get(currentDimension).tree; TreeContentProvider provider = (TreeContentProvider) tree.getViewer().getContentProvider(); Object[] roots = provider.getElements(tree.getViewer().getInput()); for (Object root : roots) { checkElementAndSubtree(root); } selectionChanged(); } } }); btnUncheckall = new Button(compositeBtn, SWT.NONE); btnUncheckall.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1)); btnUncheckall.setToolTipText("Uncheck all"); btnUncheckall.setImage(ResourceManager.getPluginImage(Activator.PLUGIN_ID, "icons/uncheck_all.png")); btnUncheckall.setEnabled(false); btnUncheckall.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { configurationMap.get(currentDimension).tree.setCheckedElements(EMPTY_ARRAY); selectionChanged(); } }); Label separator = new Label(compositeBtn, SWT.SEPARATOR | SWT.VERTICAL); GridData gd_separator = new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1); gd_separator.horizontalIndent = 2; gd_separator.widthHint = 5; gd_separator.heightHint = 20; separator.setLayoutData(gd_separator); btnCheckSubtree = new Button(compositeBtn, SWT.NONE); btnCheckSubtree.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1)); btnCheckSubtree.setToolTipText("Check subtree"); btnCheckSubtree.setImage(ResourceManager.getPluginImage(Activator.PLUGIN_ID, "icons/check_subtree.png")); btnCheckSubtree.setEnabled(false); btnCheckSubtree.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (configurationMap.get(currentDimension).roots != null) { ITreeNode node = getCurrentSelection(configurationMap.get(currentDimension).tree); if (node == null) return; checkElementAndSubtree(node); selectionChanged(); } } }); btnUncheckSubtree = new Button(compositeBtn, SWT.NONE); btnUncheckSubtree.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1)); btnUncheckSubtree.setToolTipText("Uncheck subtree"); btnUncheckSubtree .setImage(ResourceManager.getPluginImage(Activator.PLUGIN_ID, "icons/uncheck_subtree.png")); btnUncheckSubtree.setEnabled(false); btnUncheckSubtree.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (configurationMap.get(currentDimension).roots != null) { ITreeNode node = getCurrentSelection(configurationMap.get(currentDimension).tree); if (node == null) return; uncheckElement(node); uncheckAncestors(node); selectionChanged(); } } }); // Time management bar Composite timeComposite = new Composite(parent, SWT.BORDER); timeComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1)); GridLayout gl_timeComposite = new GridLayout(1, false); gl_timeComposite.horizontalSpacing = 0; timeComposite.setLayout(gl_timeComposite); // time manager timeBar = new TimeBar(timeComposite, SWT.NONE, true, true); timeBar.setEnabled(false); IStatusLineManager statusLineManager = getViewSite().getActionBars().getStatusLineManager(); timeBar.setStatusLineManager(statusLineManager); timeBar.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { TimeInterval barInterval = timeBar.getSelection(); if (marker == null) { addNewMarker(barInterval.startTimestamp, barInterval.endTimestamp); } else { marker.setStartValue(barInterval.startTimestamp); marker.setEndValue(barInterval.endTimestamp); } selectedTs0 = barInterval.startTimestamp; selectedTs1 = barInterval.endTimestamp; timeChanged = !barInterval.equals(loadedInterval); } }); // button to synch the timebar, producers and type with the current loaded data timeBar.getSynchButton().setToolTipText("Reset Timebar, Types and Producers"); timeBar.getSynchButton().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (loadedInterval != null) { timeBar.setSelection(loadedInterval); if (marker != null && plot != null) { plot.removeDomainMarker(marker); marker = null; } } for (ConfigurationData data : configurationMap.values()) { data.tree.setCheckedElements(data.checked); } timeChanged = false; enableTreeButtons(); enableSubTreeButtons(); } }); // load button timeBar.getLoadButton().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (timeChanged || configurationChanged) { loadHistogram(currentShownTrace, timeBar.getSelection()); } } }); // build toolbar IActionBars actionBars = getViewSite().getActionBars(); IToolBarManager toolBar = actionBars.getToolBarManager(); TableTraceIntervalAction.add(toolBar, createTableAction()); GanttTraceIntervalAction.add(toolBar, createGanttAction()); PieTraceIntervalAction.add(toolBar, createPieAction()); enableActions(false); }
From source file:fr.inria.soctrace.framesoc.ui.views.TraceTreeView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { checked = new HashSet<>(); tracesLoader = new TraceLoader(); viewer = new TreeViewer(parent, SWT.MULTI); viewer.setContentProvider(new TreeContentProvider()); viewer.setLabelProvider(new TreeLabelProvider()); viewer.setInput(tracesLoader.loadFromDB()); // default comparator viewer.setComparator(new ViewerComparator()); // double click viewer.addDoubleClickListener(new IDoubleClickListener() { @Override//from w w w . j a va 2s . c om public void doubleClick(DoubleClickEvent event) { IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection(); if (TraceSelection.isFolderNode(thisSelection)) { FolderNode folder = (FolderNode) thisSelection.getFirstElement(); boolean expanded = viewer.getExpandedState(folder); viewer.setExpandedState(folder, !expanded); return; } if (!TraceSelection.isSelectionValid(thisSelection) || !FramesocPartManager.getInstance() .isFramesocPartExisting(FramesocViews.GANTT_CHART_VIEW_ID)) { return; } setSelectionBusVariables(thisSelection); TraceNode selectedNode = (TraceNode) thisSelection.getFirstElement(); TraceIntervalDescriptor des = new TraceIntervalDescriptor(); des.setTrace(selectedNode.getTrace()); des.setTimeInterval(TimeInterval.NOT_SPECIFIED); logger.debug(des.toString()); FramesocBus.getInstance().send(FramesocBusTopic.TOPIC_UI_GANTT_DISPLAY_TIME_INTERVAL, des); } }); // key listener viewer.getControl().addKeyListener(new KeyAdapter() { @Override public void keyReleased(final KeyEvent event) { if (event.keyCode == SWT.DEL) { HandlerUtils.launchCommand(getSite(), "fr.inria.soctrace.framesoc.ui.commands.deleteDB"); } } }); // Context menu MenuManager menuManager = new MenuManager(); Menu menu = menuManager.createContextMenu(viewer.getTree()); viewer.getTree().setMenu(menu); getSite().registerContextMenu(menuManager, viewer); menuManager.addMenuListener(new IMenuListener() { @Override public void menuAboutToShow(IMenuManager manager) { // show the menu only on leaf nodes IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (!TraceSelection.isSelectionValid(selection)) { manager.removeAll(); return; } if (selection.size() > 1) { manager.remove(COMMAND_FRAMESOC_PARTS); manager.remove(COMMAND_COPY_DB_NAME); } setSelectionBusVariables(selection); } }); // build the toolbar buildToolbar(parent); // register the selection listener getSite().getWorkbenchWindow().getSelectionService().addSelectionListener(listener); // provide our selection for other viewers getSite().setSelectionProvider(viewer); // expand all viewer.expandAll(); viewer.refresh(); // resources boldFont = resourceManager .createFont(FontDescriptor.createFrom(viewer.getTree().getFont()).setStyle(SWT.BOLD)); normalFont = viewer.getTree().getFont(); }
From source file:fr.inria.soctrace.tools.filters.ui.views.FilterView.java
License:Open Source License
@Override public void createPartControl(final Composite parent) { // Highest Component final SashForm sashForm = new SashForm(parent, SWT.NONE); final TabFolder tabFolder = new TabFolder(sashForm, SWT.NONE); final TabItem tbtmTimeFilter = new TabItem(tabFolder, SWT.NONE); tbtmTimeFilter.setText("Time Filter"); final SashForm sashForm_2 = new SashForm(tabFolder, SWT.VERTICAL); tbtmTimeFilter.setControl(sashForm_2); final Composite composite_2 = new Composite(sashForm_2, SWT.NONE); composite_2.setLayout(new GridLayout(1, false)); final Combo comboTraces = new Combo(composite_2, SWT.READ_ONLY); comboTraces.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1)); comboTraces.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); final Group grpResultLabel = new Group(sashForm_2, SWT.NONE); grpResultLabel.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); grpResultLabel.setText("Result Label"); grpResultLabel.setLayout(new GridLayout(1, false)); label = new Text(grpResultLabel, SWT.BORDER); label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); label.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); final Group groupEventTypes = new Group(sashForm_2, SWT.NONE); groupEventTypes.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); groupEventTypes.setText("Event Types"); final GridLayout gl_groupEventTypes = new GridLayout(2, false); gl_groupEventTypes.horizontalSpacing = 0; groupEventTypes.setLayout(gl_groupEventTypes); listViewerEventTypes = new ListViewer(groupEventTypes, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); listViewerEventTypes.setContentProvider(new ArrayContentProvider()); listViewerEventTypes.setLabelProvider(new EventTypeLabelProvider()); listViewerEventTypes.setComparator(new ViewerComparator()); final List listEventTypes = listViewerEventTypes.getList(); listEventTypes.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); listEventTypes.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); final ScrolledComposite scrCompositeEventTypeButtons = new ScrolledComposite(groupEventTypes, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); scrCompositeEventTypeButtons.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); scrCompositeEventTypeButtons.setExpandHorizontal(true); scrCompositeEventTypeButtons.setExpandVertical(true); final Composite compositeEventTypeButtons = new Composite(scrCompositeEventTypeButtons, SWT.NONE); compositeEventTypeButtons.setLayout(new GridLayout(1, false)); final Button btnAddEventTypes = new Button(compositeEventTypeButtons, SWT.NONE); btnAddEventTypes.setText("Add"); btnAddEventTypes.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); btnAddEventTypes.setImage(null);//ww w . java2 s. com btnAddEventTypes.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); btnAddEventTypes.addSelectionListener(new TypesSelectionAdapter()); final Button btnRemoveEventTypes = new Button(compositeEventTypeButtons, SWT.NONE); btnRemoveEventTypes.setText("Remove"); btnRemoveEventTypes.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); btnRemoveEventTypes.setImage(null); btnRemoveEventTypes.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); scrCompositeEventTypeButtons.setContent(compositeEventTypeButtons); scrCompositeEventTypeButtons.setMinSize(compositeEventTypeButtons.computeSize(SWT.DEFAULT, SWT.DEFAULT)); btnRemoveEventTypes.addSelectionListener(new RemoveSelectionAdapter(listViewerEventTypes)); final Group groupIdleStates = new Group(sashForm_2, SWT.NONE); groupIdleStates.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); groupIdleStates.setText("Idle States"); final GridLayout gl_groupIdleStates = new GridLayout(2, false); gl_groupIdleStates.horizontalSpacing = 0; gl_groupIdleStates.verticalSpacing = 0; groupIdleStates.setLayout(gl_groupIdleStates); listViewerIdleStates = new ListViewer(groupIdleStates, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); listViewerIdleStates.setContentProvider(new ArrayContentProvider()); listViewerIdleStates.setComparator(new ViewerComparator()); final List listIdleStates = listViewerIdleStates.getList(); final GridData gd_listIdleStates = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); gd_listIdleStates.widthHint = 203; listIdleStates.setLayoutData(gd_listIdleStates); listIdleStates.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); final ScrolledComposite scrCompositeIdleStateButton = new ScrolledComposite(groupIdleStates, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); scrCompositeIdleStateButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); scrCompositeIdleStateButton.setExpandHorizontal(true); scrCompositeIdleStateButton.setExpandVertical(true); final Composite compositeIdleStateButtons = new Composite(scrCompositeIdleStateButton, SWT.NONE); compositeIdleStateButtons.setLayout(new GridLayout(1, false)); final Button btnAddIdleStates = new Button(compositeIdleStateButtons, SWT.NONE); btnAddIdleStates.setText("Add"); btnAddIdleStates.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); btnAddIdleStates.setImage(null); btnAddIdleStates.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); btnAddIdleStates.addSelectionListener(new IdlesSelectionAdapter()); final Button btnRemoveIdle = new Button(compositeIdleStateButtons, SWT.NONE); btnRemoveIdle.setText("Remove"); btnRemoveIdle.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); btnRemoveIdle.setImage(null); btnRemoveIdle.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); scrCompositeIdleStateButton.setContent(compositeIdleStateButtons); scrCompositeIdleStateButton.setMinSize(compositeIdleStateButtons.computeSize(SWT.DEFAULT, SWT.DEFAULT)); btnRemoveIdle.addSelectionListener(new RemoveSelectionAdapter(listViewerIdleStates)); final Group grpResultType = new Group(sashForm_2, SWT.NONE); grpResultType.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); grpResultType.setText("Result Type"); grpResultType.setLayout(new GridLayout(2, false)); btnEvent = new Button(grpResultType, SWT.RADIO); btnEvent.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, true, 1, 1)); btnEvent.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); btnEvent.setText("Events"); btnEventProducer = new Button(grpResultType, SWT.RADIO); btnEventProducer.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, true, 1, 1)); btnEventProducer.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); btnEventProducer.setText("Event Producers"); final Group grpEventProducers = new Group(sashForm_2, SWT.NONE); grpEventProducers.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); grpEventProducers.setText("Settings"); grpEventProducers.setLayout(new GridLayout(2, false)); include = new Button(grpEventProducers, SWT.RADIO); include.setSelection(true); include.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); include.setText("Included in Time Interval"); exclude = new Button(grpEventProducers, SWT.RADIO); exclude.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); exclude.setText("Excluded from Time Interval"); final Group groupTime = new Group(sashForm_2, SWT.NONE); groupTime.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); groupTime.setText("Time Interval"); groupTime.setLayout(new GridLayout(2, false)); final Label lblStartTimestamp = new Label(groupTime, SWT.NONE); lblStartTimestamp.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); lblStartTimestamp.setText("Start Timestamp"); timestampStart = new Text(groupTime, SWT.BORDER); timestampStart.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); timestampStart.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); timestampStart.addModifyListener(new ConfModificationListener()); final Label lblEndTimestamp = new Label(groupTime, SWT.NONE); lblEndTimestamp.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); lblEndTimestamp.setText("End Timestamp"); timestampEnd = new Text(groupTime, SWT.BORDER); timestampEnd.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); timestampEnd.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); timestampEnd.addModifyListener(new ConfModificationListener()); final Composite composite = new Composite(sashForm_2, SWT.NONE); composite.setLayout(new GridLayout(1, false)); final Button btnProcess = new Button(composite, SWT.NONE); btnProcess.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false, 1, 1)); btnProcess.setFont(SWTResourceManager.getFont("Cantarell", 9, SWT.NORMAL)); btnProcess.setText("Process"); sashForm_2.setWeights(new int[] { 49, 56, 125, 123, 64, 49, 97, 46 }); btnProcess.addSelectionListener(new RunSelectionListener()); comboTraces.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { cleanAll(); try { loader.load(traceMap.get(comboTraces.getSelectionIndex())); timestampStart.setText(String.valueOf(loader.getMinTimestamp())); timestampEnd.setText(String.valueOf(loader.getMaxTimestamp())); } catch (final SoCTraceException e1) { MessageDialog.openError(getSite().getShell(), "Exception", e1.getMessage()); } } }); int index = 0; for (final Trace t : loader.getTraces()) { comboTraces.add(t.getAlias(), index); traceMap.put(index, t); index++; } final GridData gd_listIdle = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); gd_listIdle.widthHint = 203; sashForm.setWeights(new int[] { 268 }); include.addSelectionListener(new IncludeSelectionListener()); exclude.addSelectionListener(new ExcludeSelectionListener()); btnEvent.addSelectionListener(new EventSelectionListener()); btnEventProducer.addSelectionListener(new EventProducerSelectionListener()); label.addModifyListener(new ConfModificationListener()); cleanAll(); }