List of usage examples for org.eclipse.jface.viewers AbstractTreeViewer ALL_LEVELS
int ALL_LEVELS
To view the source code for org.eclipse.jface.viewers AbstractTreeViewer ALL_LEVELS.
Click Source Link
From source file:org.eclipse.titan.log.viewer.utils.LogFileCacheHandler.java
License:Open Source License
/** * Processes the given LogFile if it has changed. The property file, index file, and log record index file will be created. * Does nothing if the log file has not changed, or test case extraction is already running on the file. * @param logFile The log file/* w ww . jav a 2 s .c o m*/ * @param pMonitor Progress monitor. * @param quietMode If false, the error messages will be displayed to the user. * @return true if the processing was successful, false otherwise */ public static boolean processLogFile(final IFile logFile, final IProgressMonitor pMonitor, final boolean quietMode) { IProgressMonitor monitor = pMonitor == null ? new NullProgressMonitor() : pMonitor; if (!logFile.exists()) { if (!quietMode) { TitanLogExceptionHandler .handleException(new UserException("The log file does not exist: " + logFile.getName())); //$NON-NLS-1$ } return false; } try { Object temp = logFile.getSessionProperty(Constants.EXTRACTION_RUNNING); if (temp != null && (Boolean) temp) { if (!quietMode) { TitanLogExceptionHandler.handleException(new TechnicalException( "Test case extraction is running on the given logfile: " + logFile.getName())); //$NON-NLS-1$ } return false; } } catch (CoreException e) { ErrorReporter.logExceptionStackTrace(e); TitanLogExceptionHandler.handleException(new UserException(e.getMessage())); return false; } if (!LogFileCacheHandler.hasLogFileChanged(logFile)) { return true; } try { logFile.setSessionProperty(Constants.EXTRACTION_RUNNING, true); } catch (CoreException e) { ErrorReporter.logExceptionStackTrace(e); return false; } final LogFileHandler logFileHandler = new LogFileHandler(logFile); try { LogFileMetaData logFileMetaData = logFileHandler.autoDetect(); final TestCaseExtractor testCaseExtractor = new TestCaseExtractor(); testCaseExtractor.extractTestCasesFromLogFile(logFileMetaData, monitor); if (monitor.isCanceled()) { Display.getDefault().asyncExec(new Runnable() { @Override public void run() { final IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage(); IViewPart view = activePage.findView("org.eclipse.ui.navigator.ProjectExplorer"); if (view instanceof CommonNavigator) { CommonNavigator navigator = (CommonNavigator) view; navigator.getCommonViewer().update(logFile, null); navigator.getCommonViewer().collapseToLevel(logFile, AbstractTreeViewer.ALL_LEVELS); } } }); return false; } fillCache(logFile, logFileMetaData, testCaseExtractor.getTestCases(), testCaseExtractor.getLogRecordIndexes()); Display.getDefault().asyncExec(new Runnable() { @Override public void run() { final IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage(); IViewPart view = activePage.findView("org.eclipse.ui.navigator.ProjectExplorer"); if (view instanceof CommonNavigator) { CommonNavigator navigator = (CommonNavigator) view; navigator.getCommonViewer().refresh(logFile, true); navigator.getCommonViewer().expandToLevel(logFile, AbstractTreeViewer.ALL_LEVELS); } } }); if (testCaseExtractor.failedDuringExtraction()) { Display.getDefault().asyncExec(new Runnable() { @Override public void run() { MessageDialog.openInformation(null, Messages.getString("OpenTextTableProjectsViewMenuAction.8"), Messages.getString("OpenTextTableProjectsViewMenuAction.9")); } }); return false; } } catch (IOException e) { if (!quietMode) { ErrorReporter.logExceptionStackTrace(e); TitanLogExceptionHandler.handleException(new TechnicalException( Messages.getString("OpenTextTableProjectsViewMenuAction.2") + e.getMessage())); //$NON-NLS-1$ } return false; } catch (TechnicalException e) { // invalid file format if (!quietMode) { MessageDialog.openError(Display.getDefault().getActiveShell(), "Invalid log file", e.getMessage()); } return false; } finally { try { logFile.setSessionProperty(Constants.EXTRACTION_RUNNING, false); } catch (CoreException e) { ErrorReporter.logExceptionStackTrace(e); } } return true; }
From source file:org.eclipse.titan.log.viewer.views.navigator.LogFileContentProvider.java
License:Open Source License
@Override public Object[] getChildren(final Object parentElement) { Object[] emptyResult = new Object[] {}; if (!(parentElement instanceof IFile)) { return emptyResult; }//from w ww .j a va2 s.c o m final IFile logFile = (IFile) parentElement; if (!logFile.exists()) { return emptyResult; } String fileExtension = logFile.getFileExtension(); if (fileExtension == null || !fileExtension.equals(Constants.LOG_EXTENSION)) { return emptyResult; } try { Object temp = logFile.getSessionProperty(Constants.EXTRACTION_RUNNING); if (temp != null && (Boolean) temp) { return emptyResult; } } catch (CoreException e) { ErrorReporter.logExceptionStackTrace(e); TitanLogExceptionHandler.handleException(new UserException(e.getMessage())); } if (LogFileCacheHandler.hasLogFileChanged(logFile)) { handleLogFileChange(logFile); return emptyResult; } try { final TestCaseExtractor extractor = new TestCaseExtractor(); extractor.extractTestCasesFromIndexedLogFile(logFile); Display.getDefault().asyncExec(new Runnable() { @Override public void run() { IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage(); IViewPart view = activePage.findView("org.eclipse.ui.navigator.ProjectExplorer"); if (view instanceof CommonNavigator) { CommonViewer viewer = ((CommonNavigator) view).getCommonViewer(); for (TestCase testCase : extractor.getTestCases()) { viewer.expandToLevel(testCase, AbstractTreeViewer.ALL_LEVELS); viewer.refresh(testCase, true); } } } }); return extractor.getTestCases().toArray(); } catch (Exception e) { LogFileCacheHandler.clearCache(logFile); ErrorReporter.logExceptionStackTrace(e); return emptyResult; } }
From source file:org.eclipse.tracecompass.extension.internal.callstack.ui.views.stacktable.CallStackTableView.java
License:Open Source License
@Override public void createPartControl(@Nullable Composite parent) { super.createPartControl(parent); SashForm sf = new SashForm(parent, SWT.NONE); /* Build the tree viewer part of the view */ TreeViewer treeViewer = new TreeViewer(sf, SWT.FULL_SELECTION | SWT.H_SCROLL); fTreeViewer = treeViewer;/*from www.j a v a 2s.c o m*/ treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); final Tree tree = treeViewer.getTree(); tree.setHeaderVisible(true); tree.setLinesVisible(true); TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.LEFT); column.getColumn().setText("CallSite"); column.getColumn().setWidth(50); treeViewer.setContentProvider(new TreeContentProvider()); treeViewer.setLabelProvider(new TreeLabelProvider()); }
From source file:org.eclipse.tracecompass.internal.tmf.remote.ui.wizards.fetch.preferences.RemoteProfilesPreferencePage.java
License:Open Source License
@Override protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); composite.setLayoutData(gd);/*from ww w. ja v a 2s .c o m*/ GridLayout gl = new GridLayout(2, false); composite.setLayout(gl); PatternFilter patternFilter = new PatternFilter() { // show all children of matching profiles or profiles with matching connection node @Override protected boolean isLeafMatch(Viewer viewer, Object element) { TreeViewer treeViewer = (TreeViewer) viewer; TracePackageContentProvider contentProvider = (TracePackageContentProvider) treeViewer .getContentProvider(); Object parentElement = element; while (!(parentElement instanceof RemoteImportProfileElement)) { parentElement = contentProvider.getParent(parentElement); if (parentElement instanceof TracePackageTraceElement) { // don't show children of trace element return false; } } RemoteImportProfileElement profile = (RemoteImportProfileElement) parentElement; if (super.isLeafMatch(viewer, profile)) { return true; } for (Object child : contentProvider.getChildren(profile)) { if ((child instanceof RemoteImportConnectionNodeElement) && (super.isLeafMatch(viewer, child))) { return true; } } return false; } }; final FilteredTree filteredTree = new FilteredTree(composite, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER, patternFilter, true); gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.heightHint = 0; filteredTree.setLayoutData(gd); final TreeViewer treeViewer = filteredTree.getViewer(); fTreeViewer = treeViewer; treeViewer.setContentProvider(new TracePackageContentProvider() { @Override public Object[] getElements(Object inputElement) { if (inputElement instanceof ArrayList) { return ((ArrayList<?>) inputElement).toArray(); } return super.getElements(inputElement); } @Override public boolean hasChildren(Object element) { if (element instanceof TracePackageTraceElement) { return false; } return super.hasChildren(element); } }); treeViewer.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof TracePackageTraceElement) { for (TracePackageElement files : ((TracePackageTraceElement) element).getChildren()) { if (files instanceof TracePackageFilesElement) { return ((TracePackageFilesElement) files).getFileName(); } } } else if (element instanceof TracePackageElement) { return ((TracePackageElement) element).getText(); } return super.getText(element); } @Override public Image getImage(Object element) { if (element instanceof TracePackageTraceElement) { for (TracePackageElement files : ((TracePackageTraceElement) element).getChildren()) { return files.getImage(); } } else if (element instanceof TracePackageElement) { return ((TracePackageElement) element).getImage(); } return super.getImage(element); } }); treeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); TracePackageElement element = (TracePackageElement) (selection.size() == 1 ? selection.getFirstElement() : null); fDetailsPanel.refreshDetailsPanel(element); enableButtons(selection); fSelectedProfileName = null; while (element != null) { if (element instanceof RemoteImportProfileElement) { fSelectedProfileName = ((RemoteImportProfileElement) element).getProfileName(); } element = element.getParent(); } } }); createGlobalActions(); createContextMenu(); fProfiles = readProfiles(PROFILE_FILE_PATH, new NullProgressMonitor()); treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); treeViewer.setInput(fProfiles); treeViewer.expandAll(); Composite buttonBar = createVerticalButtonBar(composite); gd = new GridData(SWT.CENTER, SWT.BEGINNING, false, false); gd.verticalIndent = filteredTree.getFilterControl().computeSize(SWT.DEFAULT, SWT.DEFAULT).y + gl.verticalSpacing; buttonBar.setLayoutData(gd); enableButtons((IStructuredSelection) treeViewer.getSelection()); Composite details = new Composite(composite, SWT.NONE); gd = new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1); details.setLayoutData(gd); gl = new GridLayout(2, false); gl.marginWidth = 0; details.setLayout(gl); Label label = new Label(details, SWT.NONE); label.setText(RemoteMessages.RemoteProfilesPreferencePage_DetailsPanelLabel); gd = new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1); label.setLayoutData(gd); fDetailsPanel = new DetailsPanel(details); validate(); for (RemoteImportProfileElement profile : fProfiles) { if (profile.getProfileName().equals(fSelectedProfileName)) { fTreeViewer.setSelection(new StructuredSelection(profile)); } } Dialog.applyDialogFont(composite); return composite; }
From source file:org.eclipse.tracecompass.internal.tmf.remote.ui.wizards.fetch.preferences.RemoteProfilesPreferencePage.java
License:Open Source License
private void createGlobalActions() { fDeleteAction = new Action(RemoteMessages.RemoteProfilesPreferencePage_DeleteAction) { @Override//from w w w.j av a2s . c om public void run() { final IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); if (selection.size() == 0) { return; } for (Object item : selection.toList()) { removeElement(item); } } }; fDeleteAction.setImageDescriptor( PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_DELETE)); fDeleteAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_DELETE); fDeleteAction.setAccelerator(SWT.DEL); fCutAction = new Action(RemoteMessages.RemoteProfilesPreferencePage_CutAction) { @Override public void run() { final IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); if (selection.size() != 1) { return; } setClipboardContents(selection); Object item = selection.getFirstElement(); removeElement(item); } }; fCutAction.setImageDescriptor( PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_CUT)); fCutAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_CUT); fCutAction.setAccelerator(SWT.CTRL | 'X'); fCopyAction = new Action(RemoteMessages.RemoteProfilesPreferencePage_CopyAction) { @Override public void run() { final IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); if (selection.size() != 1) { return; } setClipboardContents(new StructuredSelection( copyElement(null, (TracePackageElement) selection.getFirstElement()))); } }; fCopyAction.setImageDescriptor( PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_COPY)); fCopyAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_COPY); fCopyAction.setAccelerator(SWT.CTRL | 'C'); fPasteAction = new Action(RemoteMessages.RemoteProfilesPreferencePage_PasteAction) { @Override public void run() { final IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); if (selection.size() > 1) { return; } if (!validatePaste(selection.getFirstElement())) { return; } IStructuredSelection data = getClipboardContents(); data = getClipboardContents(); if (data == null) { return; } for (Object object : data.toArray()) { if (object instanceof RemoteImportProfileElement) { TracePackageElement element = copyElement(null, (TracePackageElement) object); TracePackageElement target = (TracePackageElement) selection.getFirstElement(); if (target == null) { fProfiles.add((RemoteImportProfileElement) element); } else { int index = fProfiles.indexOf(target); fProfiles.add(index + 1, (RemoteImportProfileElement) element); } Object[] expanded = fTreeViewer.getExpandedElements(); fTreeViewer.refresh(); fTreeViewer.setExpandedElements(expanded); fTreeViewer.expandToLevel(element, AbstractTreeViewer.ALL_LEVELS); fTreeViewer.setSelection(new StructuredSelection(element)); validate(); } else if (object instanceof TracePackageElement && selection.getFirstElement() instanceof TracePackageElement) { TracePackageElement element = copyElement(null, (TracePackageElement) object); TracePackageElement target = (TracePackageElement) selection.getFirstElement(); if (target.getClass().equals(element.getClass())) { int index = target.getParent().indexOf(target); target.getParent().addChild(index + 1, element); fTreeViewer.refresh(target.getParent()); } else { target.addChild(0, element); fTreeViewer.refresh(target); } fTreeViewer.expandToLevel(element, AbstractTreeViewer.ALL_LEVELS); fTreeViewer.setSelection(new StructuredSelection(element)); validate(); } } } }; fPasteAction.setImageDescriptor( PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_PASTE)); fPasteAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_PASTE); fPasteAction.setAccelerator(SWT.CTRL | 'V'); fTreeViewer.getTree().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.stateMask == 0 && e.keyCode == SWT.DEL) { fDeleteAction.run(); } if ((e.stateMask & SWT.CTRL) == SWT.CTRL) { if (e.keyCode == 'x') { fCutAction.run(); } else if (e.keyCode == 'c') { fCopyAction.run(); } else if (e.keyCode == 'v') { fPasteAction.run(); } } } }); }
From source file:org.eclipse.tracecompass.internal.tmf.remote.ui.wizards.fetch.preferences.RemoteProfilesPreferencePage.java
License:Open Source License
private Composite createVerticalButtonBar(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout()); fAddButton = createVerticalButton(composite, RemoteMessages.RemoteProfilesPreferencePage_AddButton); fAddButton.addSelectionListener(new SelectionAdapter() { @Override//from w w w. jav a2s .c o m public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); if (selection.isEmpty()) { newProfile(null); } else if (selection.getFirstElement() instanceof TracePackageElement) { TracePackageElement previous = (TracePackageElement) selection.getFirstElement(); if (previous instanceof RemoteImportProfileElement) { newProfile(previous); } else if (previous instanceof RemoteImportConnectionNodeElement) { newConnectionNode(previous.getParent(), previous); } else if (previous instanceof RemoteImportTraceGroupElement) { newTraceGroup(previous.getParent(), previous); } else if (previous instanceof TracePackageTraceElement) { newTrace(previous.getParent(), previous); } } } }); fRemoveButton = createVerticalButton(composite, RemoteMessages.RemoteProfilesPreferencePage_RemoveButton); fRemoveButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); for (Object item : selection.toList()) { if (item instanceof RemoteImportProfileElement) { fProfiles.remove(item); } else if (item instanceof TracePackageElement) { TracePackageElement element = (TracePackageElement) item; element.getParent().removeChild(element); } } fTreeViewer.refresh(); validate(); } }); new Label(composite, SWT.NONE); fImportButton = createVerticalButton(composite, RemoteMessages.RemoteProfilesPreferencePage_ImportButton); fImportButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(Display.getCurrent().getActiveShell(), SWT.OPEN); dialog.setText(RemoteMessages.RemoteProfilesPreferencePage_ImportFileDialogTitle); dialog.setFilterExtensions(new String[] { "*.xml", "*" }); //$NON-NLS-1$ //$NON-NLS-2$ String path = dialog.open(); if (path != null) { List<RemoteImportProfileElement> profiles = readProfiles(path, new NullProgressMonitor()); fProfiles.addAll(profiles); fTreeViewer.refresh(); for (RemoteImportProfileElement profile : profiles) { fTreeViewer.expandToLevel(profile, AbstractTreeViewer.ALL_LEVELS); } fTreeViewer.setSelection(new StructuredSelection(profiles)); validate(); } } }); fExportButton = createVerticalButton(composite, RemoteMessages.RemoteProfilesPreferencePage_ExportButton); fExportButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(Display.getCurrent().getActiveShell(), SWT.SAVE); dialog.setText(RemoteMessages.RemoteProfilesPreferencePage_ExportFileDialogTitle); dialog.setFilterExtensions(new String[] { "*.xml", "*" }); //$NON-NLS-1$ //$NON-NLS-2$ String path = dialog.open(); if (path != null) { IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); List<RemoteImportProfileElement> profiles = new ArrayList<>(); for (Object element : selection.toList()) { if (element instanceof RemoteImportProfileElement) { profiles.add((RemoteImportProfileElement) element); } } writeProfiles(profiles, path); } } }); new Label(composite, SWT.NONE); fMoveUpButton = createVerticalButton(composite, RemoteMessages.RemoteProfilesPreferencePage_MoveUpButton); fMoveUpButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); Object element = selection.getFirstElement(); if (element instanceof RemoteImportProfileElement) { int index = fProfiles.indexOf(element); if (index > 0) { RemoteImportProfileElement profile = fProfiles.remove(index); fProfiles.add(index - 1, profile); Object[] expanded = fTreeViewer.getExpandedElements(); fTreeViewer.refresh(); fTreeViewer.setExpandedElements(expanded); enableButtons(selection); } } else if (element instanceof TracePackageElement) { TracePackageElement child = (TracePackageElement) element; TracePackageElement parentElement = child.getParent(); int index = parentElement.indexOf(child); if (index > 0) { parentElement.removeChild(child); parentElement.addChild(index - 1, child); Object[] expanded = fTreeViewer.getExpandedElements(); fTreeViewer.refresh(parentElement); fTreeViewer.setExpandedElements(expanded); enableButtons(selection); } } } }); fMoveDownButton = createVerticalButton(composite, RemoteMessages.RemoteProfilesPreferencePage_MoveDownButton); fMoveDownButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) fTreeViewer.getSelection(); Object element = selection.getFirstElement(); if (element instanceof RemoteImportProfileElement) { int index = fProfiles.indexOf(selection.getFirstElement()); if (index >= 0 && index < fProfiles.size() - 1) { RemoteImportProfileElement profile = fProfiles.remove(index); fProfiles.add(index + 1, profile); Object[] expanded = fTreeViewer.getExpandedElements(); fTreeViewer.refresh(); fTreeViewer.setExpandedElements(expanded); enableButtons(selection); } } else if (element instanceof TracePackageElement) { TracePackageElement child = (TracePackageElement) element; TracePackageElement parentElement = child.getParent(); int index = parentElement.indexOf(child); if (index >= 0 && index < parentElement.getChildren().length - 1) { parentElement.removeChild(child); parentElement.addChild(index + 1, child); Object[] expanded = fTreeViewer.getExpandedElements(); fTreeViewer.refresh(parentElement); fTreeViewer.setExpandedElements(expanded); enableButtons(selection); } } } }); return composite; }
From source file:org.eclipse.tracecompass.internal.tmf.remote.ui.wizards.fetch.preferences.RemoteProfilesPreferencePage.java
License:Open Source License
private void newElementAdded(TracePackageElement element) { if (element.getParent() != null) { fTreeViewer.refresh(element.getParent()); } else {//from www. j av a2s . com fTreeViewer.refresh(); } fTreeViewer.expandToLevel(element, AbstractTreeViewer.ALL_LEVELS); fTreeViewer.setSelection(new StructuredSelection(element)); validate(); }
From source file:org.eclipse.tracecompass.internal.tmf.ui.parsers.wizards.CustomXmlParserInputWizardPage.java
License:Open Source License
private void createButtonBar() { Composite buttonBar = new Composite(container, SWT.NONE); GridLayout buttonBarLayout = new GridLayout(6, false); buttonBarLayout.marginHeight = 0;//from www . ja v a 2 s . c om buttonBarLayout.marginWidth = 0; buttonBar.setLayout(buttonBarLayout); removeButton = new Button(buttonBar, SWT.PUSH); removeButton.setImage(DELETE_IMAGE); removeButton.setToolTipText(Messages.CustomXmlParserInputWizardPage_removeElement); removeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (treeViewer.getSelection().isEmpty() || selectedElement == null) { return; } removeElement(); CustomXmlInputElement inputElement = (CustomXmlInputElement) ((IStructuredSelection) treeViewer .getSelection()).getFirstElement(); if (inputElement == definition.rootInputElement) { definition.rootInputElement = null; } else { inputElement.getParentElement().getChildElements().remove(inputElement); } treeViewer.refresh(); validate(); updatePreviews(); removeButton.setEnabled(false); if (definition.rootInputElement == null) { addChildButton.setEnabled(true); addChildButton.setToolTipText(Messages.CustomXmlParserInputWizardPage_addDocumentEleemnt); } else { addChildButton.setEnabled(false); } addNextButton.setEnabled(false); moveUpButton.setEnabled(false); moveDownButton.setEnabled(false); } }); addChildButton = new Button(buttonBar, SWT.PUSH); addChildButton.setImage(ADD_CHILD_IMAGE); addChildButton.setToolTipText(Messages.CustomXmlParserInputWizardPage_addChildElement); addChildButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { CustomXmlInputElement inputElement = new CustomXmlInputElement("", false, //$NON-NLS-1$ CustomXmlTraceDefinition.TAG_IGNORE, 0, "", null); //$NON-NLS-1$ if (definition.rootInputElement == null) { definition.rootInputElement = inputElement; inputElement.setElementName(getChildNameSuggestion(null)); } else if (treeViewer.getSelection().isEmpty()) { return; } else { CustomXmlInputElement parentInputElement = (CustomXmlInputElement) ((IStructuredSelection) treeViewer .getSelection()).getFirstElement(); parentInputElement.addChild(inputElement); inputElement.setElementName(getChildNameSuggestion(parentInputElement)); } treeViewer.refresh(); treeViewer.setSelection(new StructuredSelection(inputElement), true); } }); addNextButton = new Button(buttonBar, SWT.PUSH); addNextButton.setImage(ADD_NEXT_IMAGE); addNextButton.setToolTipText(Messages.CustomXmlParserInputWizardPage_addNextElement); addNextButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { CustomXmlInputElement inputElement = new CustomXmlInputElement("", false, //$NON-NLS-1$ CustomXmlTraceDefinition.TAG_IGNORE, 0, "", null); //$NON-NLS-1$ if (definition.rootInputElement == null) { definition.rootInputElement = inputElement; inputElement.setElementName(getChildNameSuggestion(null)); } else if (treeViewer.getSelection().isEmpty()) { return; } else { CustomXmlInputElement previousInputElement = (CustomXmlInputElement) ((IStructuredSelection) treeViewer .getSelection()).getFirstElement(); if (previousInputElement == definition.rootInputElement) { return; } previousInputElement.addNext(inputElement); inputElement.setElementName(getChildNameSuggestion(inputElement.getParentElement())); } treeViewer.refresh(); treeViewer.setSelection(new StructuredSelection(inputElement), true); } }); Button feelingLuckyButton = new Button(buttonBar, SWT.PUSH); feelingLuckyButton.setImage(ADD_MANY_IMAGE); feelingLuckyButton.setToolTipText(Messages.CustomXmlParserInputWizardPage_feelingLucky); feelingLuckyButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { CustomXmlInputElement inputElement = null; if (definition.rootInputElement == null) { if (getChildNameSuggestion(null).length() != 0) { inputElement = new CustomXmlInputElement(getChildNameSuggestion(null), false, CustomXmlTraceDefinition.TAG_IGNORE, 0, "", null); //$NON-NLS-1$ definition.rootInputElement = inputElement; feelingLucky(inputElement); } else { return; } } else if (treeViewer.getSelection().isEmpty()) { return; } else { inputElement = (CustomXmlInputElement) ((IStructuredSelection) treeViewer.getSelection()) .getFirstElement(); feelingLucky(inputElement); } treeViewer.refresh(); treeViewer.setSelection(new StructuredSelection(inputElement), true); treeViewer.expandToLevel(inputElement, AbstractTreeViewer.ALL_LEVELS); } }); moveUpButton = new Button(buttonBar, SWT.PUSH); moveUpButton.setImage(MOVE_UP_IMAGE); moveUpButton.setToolTipText(Messages.CustomXmlParserInputWizardPage_moveUp); moveUpButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (treeViewer.getSelection().isEmpty()) { return; } CustomXmlInputElement inputElement = (CustomXmlInputElement) ((IStructuredSelection) treeViewer .getSelection()).getFirstElement(); if (inputElement == definition.rootInputElement) { return; } inputElement.moveUp(); treeViewer.refresh(); validate(); updatePreviews(); } }); moveDownButton = new Button(buttonBar, SWT.PUSH); moveDownButton.setImage(MOVE_DOWN_IMAGE); moveDownButton.setToolTipText(Messages.CustomXmlParserInputWizardPage_moveDown); moveDownButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (treeViewer.getSelection().isEmpty()) { return; } CustomXmlInputElement inputElement = (CustomXmlInputElement) ((IStructuredSelection) treeViewer .getSelection()).getFirstElement(); if (inputElement == definition.rootInputElement) { return; } inputElement.moveDown(); treeViewer.refresh(); validate(); updatePreviews(); } }); }
From source file:org.eclipse.tracecompass.tmf.ui.widgets.timegraph.TimeGraphCombo.java
License:Open Source License
/** * Constructs a new instance of this class given its parent and a style * value describing its behavior and appearance. * * @param parent// w w w. j a va2s . c om * a widget which will be the parent of the new instance (cannot * be null) * @param style * the style of widget to construct * @param weights * The array (length 2) of relative weights of each side of the sash form */ public TimeGraphCombo(Composite parent, int style, int[] weights) { super(parent, style); setLayout(new FillLayout()); fSashForm = new SashForm(this, SWT.NONE); fTreeViewer = new TreeViewer(fSashForm, SWT.FULL_SELECTION | SWT.H_SCROLL); fTreeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS); final Tree tree = fTreeViewer.getTree(); tree.setHeaderVisible(true); tree.setLinesVisible(true); fTimeGraphViewer = new TimeGraphViewer(fSashForm, SWT.NONE); fTimeGraphViewer.setItemHeight(getItemHeight(tree)); fTimeGraphViewer.setHeaderHeight(tree.getHeaderHeight()); fTimeGraphViewer.setBorderWidth(tree.getBorderWidth()); fTimeGraphViewer.setNameWidthPref(0); fFilter = new RawViewerFilter(); addFilter(fFilter); fFilterDialog = new TimeGraphFilterDialog(getShell()); // Feature in Windows. The tree vertical bar reappears when // the control is resized so we need to hide it again. tree.addControlListener(new ControlAdapter() { private int depth = 0; @Override public void controlResized(ControlEvent e) { if (depth == 0) { depth++; tree.getVerticalBar().setEnabled(false); // this can trigger controlResized recursively tree.getVerticalBar().setVisible(false); depth--; } } }); // Bug in Linux. The tree header height is 0 in constructor, // so we need to reset it later when the control is painted. // This work around used to be done on control resized but the header // height was not initialized on the initial resize on GTK3. tree.addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent e) { int headerHeight = tree.getHeaderHeight(); if (headerHeight > 0) { fTimeGraphViewer.setHeaderHeight(headerHeight); tree.removePaintListener(this); } } }); // ensure synchronization of expanded items between tree and time graph fTreeViewer.addTreeListener(new ITreeViewerListener() { @Override public void treeCollapsed(TreeExpansionEvent event) { fTimeGraphViewer.setExpandedState((ITimeGraphEntry) event.getElement(), false); // queue the alignment update because the tree items may only be // actually collapsed after the listeners have been notified fVisibleExpandedItems = null; // invalidate the cache getDisplay().asyncExec(new Runnable() { @Override public void run() { alignTreeItems(true); } }); } @Override public void treeExpanded(TreeExpansionEvent event) { ITimeGraphEntry entry = (ITimeGraphEntry) event.getElement(); fTimeGraphViewer.setExpandedState(entry, true); Set<Object> expandedElements = new HashSet<>(Arrays.asList(fTreeViewer.getExpandedElements())); for (ITimeGraphEntry child : entry.getChildren()) { if (child.hasChildren()) { boolean expanded = expandedElements.contains(child); fTimeGraphViewer.setExpandedState(child, expanded); } } // queue the alignment update because the tree items may only be // actually expanded after the listeners have been notified fVisibleExpandedItems = null; // invalidate the cache getDisplay().asyncExec(new Runnable() { @Override public void run() { alignTreeItems(true); } }); } }); // ensure synchronization of expanded items between tree and time graph fTimeGraphViewer.addTreeListener(new ITimeGraphTreeListener() { @Override public void treeCollapsed(TimeGraphTreeExpansionEvent event) { fTreeViewer.setExpandedState(event.getEntry(), false); alignTreeItems(true); } @Override public void treeExpanded(TimeGraphTreeExpansionEvent event) { ITimeGraphEntry entry = event.getEntry(); fTreeViewer.setExpandedState(entry, true); Set<Object> expandedElements = new HashSet<>(Arrays.asList(fTreeViewer.getExpandedElements())); for (ITimeGraphEntry child : entry.getChildren()) { if (child.hasChildren()) { boolean expanded = expandedElements.contains(child); fTimeGraphViewer.setExpandedState(child, expanded); } } alignTreeItems(true); } }); // prevent mouse button from selecting a filler tree item tree.addListener(SWT.MouseDown, new Listener() { @Override public void handleEvent(Event event) { TreeItem treeItem = tree.getItem(new Point(event.x, event.y)); if (treeItem == null || treeItem.getData() == FILLER) { event.doit = false; List<TreeItem> treeItems = getVisibleExpandedItems(tree, false); if (treeItems.size() == 0) { fTreeViewer.setSelection(new StructuredSelection()); fTimeGraphViewer.setSelection(null); return; } // this prevents from scrolling up when selecting // the partially visible tree item at the bottom tree.select(treeItems.get(treeItems.size() - 1)); fTreeViewer.setSelection(new StructuredSelection()); fTimeGraphViewer.setSelection(null); } } }); // prevent mouse wheel from scrolling down into filler tree items tree.addListener(SWT.MouseWheel, new Listener() { @Override public void handleEvent(Event event) { event.doit = false; Slider scrollBar = fTimeGraphViewer.getVerticalBar(); fTimeGraphViewer.setTopIndex(scrollBar.getSelection() - event.count); alignTreeItems(false); } }); // prevent key stroke from selecting a filler tree item tree.addListener(SWT.KeyDown, new Listener() { @Override public void handleEvent(Event event) { List<TreeItem> treeItems = getVisibleExpandedItems(tree, false); if (treeItems.size() == 0) { fTreeViewer.setSelection(new StructuredSelection()); event.doit = false; return; } if (event.keyCode == SWT.ARROW_DOWN) { int index = Math.min(fTimeGraphViewer.getSelectionIndex() + 1, treeItems.size() - 1); fTimeGraphViewer.setSelection((ITimeGraphEntry) treeItems.get(index).getData()); event.doit = false; } else if (event.keyCode == SWT.PAGE_DOWN) { int height = tree.getSize().y - tree.getHeaderHeight() - tree.getHorizontalBar().getSize().y; int countPerPage = height / getItemHeight(tree); int index = Math.min(fTimeGraphViewer.getSelectionIndex() + countPerPage - 1, treeItems.size() - 1); fTimeGraphViewer.setSelection((ITimeGraphEntry) treeItems.get(index).getData()); event.doit = false; } else if (event.keyCode == SWT.END) { fTimeGraphViewer.setSelection((ITimeGraphEntry) treeItems.get(treeItems.size() - 1).getData()); event.doit = false; } if (fTimeGraphViewer.getSelectionIndex() >= 0) { fTreeViewer.setSelection(new StructuredSelection(fTimeGraphViewer.getSelection())); } else { fTreeViewer.setSelection(new StructuredSelection()); } alignTreeItems(false); } }); // ensure alignment of top item between tree and time graph fTimeGraphViewer.getTimeGraphControl().addControlListener(new ControlAdapter() { @Override public void controlResized(ControlEvent e) { alignTreeItems(false); } }); // ensure synchronization of selected item between tree and time graph fTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { if (fInhibitTreeSelection) { return; } if (event.getSelection() instanceof IStructuredSelection) { Object selection = ((IStructuredSelection) event.getSelection()).getFirstElement(); if (selection instanceof ITimeGraphEntry) { fTimeGraphViewer.setSelection((ITimeGraphEntry) selection); } alignTreeItems(false); } } }); // ensure synchronization of selected item between tree and time graph fTimeGraphViewer.addSelectionListener(new ITimeGraphSelectionListener() { @Override public void selectionChanged(TimeGraphSelectionEvent event) { ITimeGraphEntry entry = fTimeGraphViewer.getSelection(); fInhibitTreeSelection = true; // block the tree selection changed listener if (entry != null) { StructuredSelection selection = new StructuredSelection(entry); fTreeViewer.setSelection(selection); } else { fTreeViewer.setSelection(new StructuredSelection()); } fInhibitTreeSelection = false; alignTreeItems(false); } }); // ensure alignment of top item between tree and time graph fTimeGraphViewer.getVerticalBar().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { alignTreeItems(false); } }); // ensure alignment of top item between tree and time graph fTimeGraphViewer.getTimeGraphControl().addMouseWheelListener(new MouseWheelListener() { @Override public void mouseScrolled(MouseEvent e) { alignTreeItems(false); } }); // ensure the tree has focus control when mouse is over it if the time graph had control fTreeViewer.getControl().addMouseTrackListener(new MouseTrackAdapter() { @Override public void mouseEnter(MouseEvent e) { if (fTimeGraphViewer.getTimeGraphControl().isFocusControl()) { fTreeViewer.getControl().setFocus(); } } }); // ensure the time graph has focus control when mouse is over it if the tree had control fTimeGraphViewer.getTimeGraphControl().addMouseTrackListener(new MouseTrackAdapter() { @Override public void mouseEnter(MouseEvent e) { if (fTreeViewer.getControl().isFocusControl()) { fTimeGraphViewer.getTimeGraphControl().setFocus(); } } }); fTimeGraphViewer.getTimeGraphScale().addMouseTrackListener(new MouseTrackAdapter() { @Override public void mouseEnter(MouseEvent e) { if (fTreeViewer.getControl().isFocusControl()) { fTimeGraphViewer.getTimeGraphControl().setFocus(); } } }); // The filler rows are required to ensure alignment when the tree does not have a // visible horizontal scroll bar. The tree does not allow its top item to be set // to a value that would cause blank space to be drawn at the bottom of the tree. fNumFillerRows = Display.getDefault().getBounds().height / getItemHeight(tree); fSashForm.setWeights(weights); fTimeGraphViewer.getTimeGraphControl().addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent e) { // Sashes in a SashForm are being created on layout so add the // drag listener here if (fSashDragListener == null) { for (Control control : fSashForm.getChildren()) { if (control instanceof Sash) { fSashDragListener = new Listener() { @Override public void handleEvent(Event event) { sendTimeViewAlignmentChanged(); } }; control.removePaintListener(this); control.addListener(SWT.Selection, fSashDragListener); // There should be only one sash break; } } } } }); }
From source file:org.eclipse.ui.internal.activities.ws.ActivityEnabler.java
License:Open Source License
/** * Toggles the enablement state of all activities. * /*from w w w. j av a2 s .c o m*/ * @param enabled * whether the tree should be enabled */ protected void toggleTreeEnablement(boolean enabled) { Object[] elements = provider.getElements(activitySupport); //reset grey state to null dualViewer.setGrayedElements(new Object[0]); //enable all categories for (int i = 0; i < elements.length; i++) { dualViewer.expandToLevel(elements[i], AbstractTreeViewer.ALL_LEVELS); dualViewer.setSubtreeChecked(elements[i], enabled); } }