Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/rpm
diff options
context:
space:
mode:
authorAlexander Kurtakov2016-07-01 13:11:25 +0000
committerAlexander Kurtakov2016-07-01 14:13:11 +0000
commit574d3c0b1a15ea4755800025eb4489faa8402e9c (patch)
tree4c7bf19d56637dc5f888ff381dfca07c6f44e86f /rpm
parentf02bd5986c51b0a481fd6d775232a6ec9203c605 (diff)
downloadorg.eclipse.linuxtools-574d3c0b1a15ea4755800025eb4489faa8402e9c.tar.gz
org.eclipse.linuxtools-574d3c0b1a15ea4755800025eb4489faa8402e9c.tar.xz
org.eclipse.linuxtools-574d3c0b1a15ea4755800025eb4489faa8402e9c.zip
rpm: Don't set size of quick outline.
Letting the dialog determine size based on content prevents a lot of useless scrolling. Change-Id: I0294606db9fc9b3ba795e658ca1f107725f7a8f2 Signed-off-by: Alexander Kurtakov <akurtako@redhat.com> Reviewed-on: https://git.eclipse.org/r/76434 Tested-by: Hudson CI
Diffstat (limited to 'rpm')
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/actions/SpecfileEditorShowOutlineActionDelegate.java1
-rw-r--r--rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/outline/SpecfileQuickOutlineDialog.java249
2 files changed, 119 insertions, 131 deletions
diff --git a/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/actions/SpecfileEditorShowOutlineActionDelegate.java b/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/actions/SpecfileEditorShowOutlineActionDelegate.java
index a9f8d52749..3df0b1e993 100644
--- a/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/actions/SpecfileEditorShowOutlineActionDelegate.java
+++ b/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/actions/SpecfileEditorShowOutlineActionDelegate.java
@@ -26,7 +26,6 @@ public class SpecfileEditorShowOutlineActionDelegate extends AbstractHandler {
if (editor instanceof SpecfileEditor) {
SpecfileQuickOutlineDialog quickOutlinePopupDialog = new SpecfileQuickOutlineDialog(
editor.getSite().getShell(), SWT.NONE, (SpecfileEditor) editor);
- quickOutlinePopupDialog.setSize(400, 200);
quickOutlinePopupDialog.setVisible(true);
}
return null;
diff --git a/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/outline/SpecfileQuickOutlineDialog.java b/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/outline/SpecfileQuickOutlineDialog.java
index 4b01b475ea..87f0bfbaf6 100644
--- a/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/outline/SpecfileQuickOutlineDialog.java
+++ b/rpm/org.eclipse.linuxtools.rpm.ui.editor/src/org/eclipse/linuxtools/internal/rpm/ui/editor/outline/SpecfileQuickOutlineDialog.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 Alexander Kurtakov.
+ * Copyright (c) 2008, 2016 Alexander Kurtakov and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -34,134 +34,123 @@ import org.eclipse.swt.widgets.Tree;
public class SpecfileQuickOutlineDialog extends PopupDialog {
- TreeViewer treeViewer;
- private Text filterText;
- private SpecfileEditor editor;
- private ContainsFilter treeViewerFilter;
-
- public SpecfileQuickOutlineDialog(Shell parent, int shellStyle,
- SpecfileEditor editor) {
- super(parent, shellStyle, true, true, true, true, true, null, null);
- this.editor = editor;
- create();
- }
-
- public void setSize(int width, int height) {
- getShell().setSize(width, height);
- }
-
- public void setVisible(boolean visible) {
- if (visible) {
- open();
- filterText.setFocus();
- } else {
- saveDialogBounds(getShell());
- getShell().setVisible(false);
- }
- }
-
- public void dispose() {
- close();
- }
-
- @Override
- protected Control createDialogArea(Composite parent) {
- createUIWidgetTreeViewer(parent);
- createUIListenersTreeViewer();
- return treeViewer.getControl();
- }
-
- @Override
- protected Control createTitleControl(Composite parent) {
- filterText = new Text(parent, SWT.NONE);
- GC gc = new GC(parent);
- gc.setFont(parent.getFont());
- FontMetrics fontMetrics = gc.getFontMetrics();
- gc.dispose();
- GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true,
- false).hint(SWT.DEFAULT,
- Dialog.convertHeightInCharsToPixels(fontMetrics, 1)).applyTo(
- filterText);
-
- filterText.addKeyListener(new KeyAdapter() {
- @Override
- public void keyPressed(KeyEvent e) {
- if (e.keyCode == 0x0D) { // Enter pressed
- gotoSelectedElement();
- } else if (e.keyCode == SWT.ARROW_DOWN) {
- treeViewer.getTree().setFocus();
- } else if (e.keyCode == SWT.ARROW_UP) {
- treeViewer.getTree().setFocus();
- } else if (e.character == 0x1B) { // Escape pressed
- dispose();
- }
- }
- });
- filterText.addModifyListener(e -> {
- String filterTextInput = ((Text) e.widget).getText()
- .toLowerCase();
- treeViewerFilter.setLookFor(filterTextInput);
- stringMatcherUpdated();
+ TreeViewer treeViewer;
+ private Text filterText;
+ private SpecfileEditor editor;
+ private ContainsFilter treeViewerFilter;
+
+ public SpecfileQuickOutlineDialog(Shell parent, int shellStyle, SpecfileEditor editor) {
+ super(parent, shellStyle, true, true, true, true, true, null, null);
+ this.editor = editor;
+ create();
+ }
+
+ public void setVisible(boolean visible) {
+ if (visible) {
+ open();
+ filterText.setFocus();
+ } else {
+ saveDialogBounds(getShell());
+ getShell().setVisible(false);
+ }
+ }
+
+ public void dispose() {
+ close();
+ }
+
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ createUIWidgetTreeViewer(parent);
+ createUIListenersTreeViewer();
+ return treeViewer.getControl();
+ }
+
+ @Override
+ protected Control createTitleControl(Composite parent) {
+ filterText = new Text(parent, SWT.NONE);
+ GC gc = new GC(parent);
+ gc.setFont(parent.getFont());
+ FontMetrics fontMetrics = gc.getFontMetrics();
+ gc.dispose();
+ GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false)
+ .hint(SWT.DEFAULT, Dialog.convertHeightInCharsToPixels(fontMetrics, 1)).applyTo(filterText);
+
+ filterText.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyPressed(KeyEvent e) {
+ if (e.keyCode == 0x0D) { // Enter pressed
+ gotoSelectedElement();
+ } else if (e.keyCode == SWT.ARROW_DOWN) {
+ treeViewer.getTree().setFocus();
+ } else if (e.keyCode == SWT.ARROW_UP) {
+ treeViewer.getTree().setFocus();
+ } else if (e.character == 0x1B) { // Escape pressed
+ dispose();
+ }
+ }
});
- return filterText;
- }
-
- private void stringMatcherUpdated() {
- treeViewer.getControl().setRedraw(false);
- treeViewer.refresh();
- treeViewer.expandAll();
- if(treeViewer.getTree().getTopItem() != null && treeViewer.getTree().getTopItem().getItemCount() > 0) {
- treeViewer.getTree().select(treeViewer.getTree().getTopItem().getItem(0));
- } else if(treeViewer.getTree().getItemCount()>0) {
- treeViewer.getTree().select(treeViewer.getTree().getItem(0));
- }
- treeViewer.getControl().setRedraw(true);
- }
-
- private void createUIWidgetTreeViewer(Composite parent) {
- final int style = SWT.H_SCROLL | SWT.V_SCROLL;
- final Tree widget = new Tree(parent, style);
- final GridData data = new GridData(GridData.FILL_BOTH);
- data.heightHint = widget.getItemHeight() * 12;
- widget.setLayoutData(data);
- treeViewer = new TreeViewer(widget);
- treeViewerFilter = new ContainsFilter();
- treeViewer.addFilter(treeViewerFilter);
- SpecfileContentProvider fOutlineContentProvider = new SpecfileContentProvider(
- editor);
- treeViewer.setContentProvider(fOutlineContentProvider);
- SpecfileLabelProvider fTreeLabelProvider = new SpecfileLabelProvider();
- treeViewer.setLabelProvider(fTreeLabelProvider);
- treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
- treeViewer.setUseHashlookup(true);
- treeViewer.setInput(fOutlineContentProvider);
- }
-
- private void createUIListenersTreeViewer() {
- final Tree tree = treeViewer.getTree();
- tree.addSelectionListener(new SelectionAdapter() {
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- gotoSelectedElement();
- }
- });
- }
-
- private void gotoSelectedElement() {
- final SpecfileElement curElement = (SpecfileElement) getSelectedElement();
- if (curElement == null) {
- return;
- }
- dispose();
- editor.setHighlightRange(curElement.getLineStartPosition(), 1, true);
- }
-
-
- private Object getSelectedElement() {
- if (treeViewer == null) {
- return null;
- }
- return ((IStructuredSelection) treeViewer.getSelection())
- .getFirstElement();
- }
+ filterText.addModifyListener(e -> {
+ String filterTextInput = ((Text) e.widget).getText().toLowerCase();
+ treeViewerFilter.setLookFor(filterTextInput);
+ stringMatcherUpdated();
+ });
+ return filterText;
+ }
+
+ private void stringMatcherUpdated() {
+ treeViewer.getControl().setRedraw(false);
+ treeViewer.refresh();
+ treeViewer.expandAll();
+ if (treeViewer.getTree().getTopItem() != null && treeViewer.getTree().getTopItem().getItemCount() > 0) {
+ treeViewer.getTree().select(treeViewer.getTree().getTopItem().getItem(0));
+ } else if (treeViewer.getTree().getItemCount() > 0) {
+ treeViewer.getTree().select(treeViewer.getTree().getItem(0));
+ }
+ treeViewer.getControl().setRedraw(true);
+ }
+
+ private void createUIWidgetTreeViewer(Composite parent) {
+ final int style = SWT.H_SCROLL | SWT.V_SCROLL;
+ final Tree widget = new Tree(parent, style);
+ final GridData data = new GridData(GridData.FILL_BOTH);
+ data.heightHint = widget.getItemHeight() * 12;
+ widget.setLayoutData(data);
+ treeViewer = new TreeViewer(widget);
+ treeViewerFilter = new ContainsFilter();
+ treeViewer.addFilter(treeViewerFilter);
+ SpecfileContentProvider fOutlineContentProvider = new SpecfileContentProvider(editor);
+ treeViewer.setContentProvider(fOutlineContentProvider);
+ SpecfileLabelProvider fTreeLabelProvider = new SpecfileLabelProvider();
+ treeViewer.setLabelProvider(fTreeLabelProvider);
+ treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
+ treeViewer.setUseHashlookup(true);
+ treeViewer.setInput(fOutlineContentProvider);
+ }
+
+ private void createUIListenersTreeViewer() {
+ final Tree tree = treeViewer.getTree();
+ tree.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ gotoSelectedElement();
+ }
+ });
+ }
+
+ private void gotoSelectedElement() {
+ final SpecfileElement curElement = (SpecfileElement) getSelectedElement();
+ if (curElement == null) {
+ return;
+ }
+ dispose();
+ editor.setHighlightRange(curElement.getLineStartPosition(), 1, true);
+ }
+
+ private Object getSelectedElement() {
+ if (treeViewer == null) {
+ return null;
+ }
+ return ((IStructuredSelection) treeViewer.getSelection()).getFirstElement();
+ }
}

Back to the top