1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-12 18:55:38 +02:00

autotools: Revive sorting action in automake/conf editor.

Remove the sorting action from the MakefileContentOutlinePage because
the action was changed in a way to be addable in init method instead of
deprecated setActionBars. 
Hooked it properly in AutomakefileContentOutlinePage.
Bonus point - hooked into AutoconfContentOutlinePage as it was just too
easy to get it there too.

Change-Id: I873864f3978ae7cb1d8aa4143edf604244c0a4bc
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
This commit is contained in:
Alexander Kurtakov 2015-12-08 21:04:15 +02:00
parent 6ba6157708
commit 81ff40486e
4 changed files with 39 additions and 26 deletions

View file

@ -15,6 +15,8 @@ import java.util.Iterator;
import org.eclipse.cdt.autotools.ui.editors.AutoconfEditor; import org.eclipse.cdt.autotools.ui.editors.AutoconfEditor;
import org.eclipse.cdt.autotools.ui.editors.parser.AutoconfElement; import org.eclipse.cdt.autotools.ui.editors.parser.AutoconfElement;
import org.eclipse.cdt.internal.autotools.ui.editors.LexicalSortingAction;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.SelectionChangedEvent;
@ -23,6 +25,7 @@ import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.part.IPageSite;
import org.eclipse.ui.texteditor.ITextEditor; import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.ui.views.contentoutline.ContentOutlinePage; import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
@ -31,6 +34,7 @@ public class AutoconfContentOutlinePage extends ContentOutlinePage {
private ITextEditor editor; private ITextEditor editor;
private IEditorInput input; private IEditorInput input;
private LexicalSortingAction sortAction;
public AutoconfContentOutlinePage(AutoconfEditor editor) { public AutoconfContentOutlinePage(AutoconfEditor editor) {
super(); super();
@ -89,8 +93,10 @@ public class AutoconfContentOutlinePage extends ContentOutlinePage {
viewer.setLabelProvider(new AutoconfLabelProvider()); viewer.setLabelProvider(new AutoconfLabelProvider());
viewer.addSelectionChangedListener(this); viewer.addSelectionChangedListener(this);
if (input != null) if (input != null) {
viewer.setInput(input); viewer.setInput(input);
}
sortAction.setTreeViewer(viewer);
} }
/* /*
@ -120,4 +126,12 @@ public class AutoconfContentOutlinePage extends ContentOutlinePage {
} }
} }
@Override
public void init(IPageSite pageSite) {
super.init(pageSite);
IToolBarManager toolBarManager = pageSite.getActionBars().getToolBarManager();
sortAction = new LexicalSortingAction();
toolBarManager.add(sortAction);
}
} }

View file

@ -10,14 +10,14 @@
* QNX Software System * QNX Software System
* Red Hat Inc. - convert to use with Automake editor * Red Hat Inc. - convert to use with Automake editor
*******************************************************************************/ *******************************************************************************/
package org.eclipse.cdt.internal.autotools.ui.editors.automake; package org.eclipse.cdt.internal.autotools.ui.editors;
import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ICElement;
import org.eclipse.cdt.internal.autotools.ui.MakeUIImages; import org.eclipse.cdt.internal.autotools.ui.MakeUIImages;
import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.jface.action.Action; import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.ViewerSorter; import org.eclipse.jface.viewers.ViewerComparator;
@ -29,7 +29,7 @@ public class LexicalSortingAction extends Action {
private LexicalCSorter fSorter; private LexicalCSorter fSorter;
private TreeViewer fTreeViewer; private TreeViewer fTreeViewer;
public LexicalSortingAction(TreeViewer treeViewer) { public LexicalSortingAction() {
super(CUIPlugin.getResourceString(ACTION_NAME + ".label")); //$NON-NLS-1$ super(CUIPlugin.getResourceString(ACTION_NAME + ".label")); //$NON-NLS-1$
setDescription(CUIPlugin.getResourceString(ACTION_NAME + ".description")); //$NON-NLS-1$ setDescription(CUIPlugin.getResourceString(ACTION_NAME + ".description")); //$NON-NLS-1$
@ -37,10 +37,12 @@ public class LexicalSortingAction extends Action {
MakeUIImages.setImageDescriptors(this, MakeUIImages.T_TOOL, MakeUIImages.IMG_TOOLS_ALPHA_SORTING); MakeUIImages.setImageDescriptors(this, MakeUIImages.T_TOOL, MakeUIImages.IMG_TOOLS_ALPHA_SORTING);
fTreeViewer= treeViewer;
fSorter= new LexicalCSorter(); fSorter= new LexicalCSorter();
}
boolean checked= CUIPlugin.getDefault().getDialogSettings().getBoolean(DIALOG_STORE_KEY); public void setTreeViewer(TreeViewer treeViewer) {
fTreeViewer = treeViewer;
boolean checked = CUIPlugin.getDefault().getDialogSettings().getBoolean(DIALOG_STORE_KEY);
valueChanged(checked, false); valueChanged(checked, false);
} }
@ -51,7 +53,7 @@ public class LexicalSortingAction extends Action {
private void valueChanged(boolean on, boolean store) { private void valueChanged(boolean on, boolean store) {
setChecked(on); setChecked(on);
fTreeViewer.setSorter(on ? fSorter : null); fTreeViewer.setComparator(on ? fSorter : null);
String key= ACTION_NAME + ".tooltip" + (on ? ".on" : ".off"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ String key= ACTION_NAME + ".tooltip" + (on ? ".on" : ".off"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
setToolTipText(CUIPlugin.getResourceString(key)); setToolTipText(CUIPlugin.getResourceString(key));
@ -61,12 +63,7 @@ public class LexicalSortingAction extends Action {
} }
} }
private static class LexicalCSorter extends ViewerSorter { private static class LexicalCSorter extends ViewerComparator {
@SuppressWarnings("unused")
public boolean isSorterProperty(Object element, Object property) {
return true;
}
@Override @Override
public int category(Object obj) { public int category(Object obj) {
if (obj instanceof ICElement) { if (obj instanceof ICElement) {

View file

@ -16,6 +16,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.eclipse.cdt.internal.autotools.ui.MakeUIImages; import org.eclipse.cdt.internal.autotools.ui.MakeUIImages;
import org.eclipse.cdt.internal.autotools.ui.editors.LexicalSortingAction;
import org.eclipse.cdt.make.core.makefile.IBadDirective; import org.eclipse.cdt.make.core.makefile.IBadDirective;
import org.eclipse.cdt.make.core.makefile.ICommand; import org.eclipse.cdt.make.core.makefile.ICommand;
import org.eclipse.cdt.make.core.makefile.IComment; import org.eclipse.cdt.make.core.makefile.IComment;
@ -30,6 +31,7 @@ import org.eclipse.cdt.make.core.makefile.ITargetRule;
import org.eclipse.cdt.make.core.makefile.gnu.IInclude; import org.eclipse.cdt.make.core.makefile.gnu.IInclude;
import org.eclipse.cdt.make.core.makefile.gnu.ITerminal; import org.eclipse.cdt.make.core.makefile.gnu.ITerminal;
import org.eclipse.cdt.make.ui.IWorkingCopyManager; import org.eclipse.cdt.make.ui.IWorkingCopyManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.TreeViewer;
@ -38,6 +40,7 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.part.IPageSite;
import org.eclipse.ui.views.contentoutline.ContentOutlinePage; import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
@ -45,6 +48,7 @@ public class AutomakefileContentOutlinePage extends ContentOutlinePage {
protected IMakefile makefile; protected IMakefile makefile;
protected IMakefile nullMakefile = new NullMakefile(); protected IMakefile nullMakefile = new NullMakefile();
private LexicalSortingAction sortAction;
private class AutomakefileContentProvider implements ITreeContentProvider { private class AutomakefileContentProvider implements ITreeContentProvider {
@ -251,6 +255,7 @@ public class AutomakefileContentOutlinePage extends ContentOutlinePage {
if (fInput != null) { if (fInput != null) {
viewer.setInput(fInput); viewer.setInput(fInput);
} }
sortAction.setTreeViewer(viewer);
} }
public void inputChanged(Object oldInput, Object newInput) { public void inputChanged(Object oldInput, Object newInput) {
@ -267,4 +272,12 @@ public class AutomakefileContentOutlinePage extends ContentOutlinePage {
} }
} }
@Override
public void init(IPageSite pageSite) {
super.init(pageSite);
IToolBarManager toolBarManager = pageSite.getActionBars().getToolBarManager();
sortAction = new LexicalSortingAction();
toolBarManager.add(sortAction);
}
} }

View file

@ -31,7 +31,6 @@ import org.eclipse.cdt.make.core.makefile.gnu.IInclude;
import org.eclipse.cdt.make.core.makefile.gnu.ITerminal; import org.eclipse.cdt.make.core.makefile.gnu.ITerminal;
import org.eclipse.cdt.make.ui.IWorkingCopyManager; import org.eclipse.cdt.make.ui.IWorkingCopyManager;
import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator; import org.eclipse.jface.action.Separator;
import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.ITreeContentProvider;
@ -42,7 +41,6 @@ import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Menu;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.part.IPageSite; import org.eclipse.ui.part.IPageSite;
@ -282,13 +280,4 @@ public class MakefileContentOutlinePage extends ContentOutlinePage {
} }
} }
@Override
public void setActionBars(IActionBars actionBars) {
super.setActionBars(actionBars);
IToolBarManager toolBarManager= actionBars.getToolBarManager();
LexicalSortingAction action= new LexicalSortingAction(getTreeViewer());
toolBarManager.add(action);
}
} }