[567708] remember test action text
diff --git a/core/tests/org.eclipse.wst.sse.ui.tests/src/org/eclipse/wst/sse/ui/tests/ActionTestView.java b/core/tests/org.eclipse.wst.sse.ui.tests/src/org/eclipse/wst/sse/ui/tests/ActionTestView.java index 80d5f6a..c176091 100644 --- a/core/tests/org.eclipse.wst.sse.ui.tests/src/org/eclipse/wst/sse/ui/tests/ActionTestView.java +++ b/core/tests/org.eclipse.wst.sse.ui.tests/src/org/eclipse/wst/sse/ui/tests/ActionTestView.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2018 IBM Corporation and others. + * Copyright (c) 2004, 2020 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at @@ -19,7 +19,6 @@ import org.eclipse.core.resources.IResource; import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IAction; import org.eclipse.jface.action.IContributionItem; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.Document; @@ -36,6 +35,7 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IMemento; import org.eclipse.ui.ISelectionListener; import org.eclipse.ui.IViewSite; import org.eclipse.ui.IWorkbenchPart; @@ -49,10 +49,15 @@ /** * @author nitin * - * A view to hang actions off of to execute arbitrary code at arbitrary times. + * A view to hang actions off of to execute arbitrary code at + * arbitrary times. */ public class ActionTestView extends ViewPart { + private static final String ACTIONTEXT = "actiontext"; + private static final String DEFAULT_ACTION_TEXT = "Use either the toolbar or the menu to run your actions\n\nWrite new lines with file paths and hit enter to open them.\n\n"; + + private class ComponentViewer extends Action { public void run() { super.run(); @@ -100,9 +105,10 @@ ISelection fSelection; private ISelectionListener fSelectionListener; + private IDocument fDocument = new Document(); - private List createActions() { - List actions = new ArrayList(); + private List<Action> createActions() { + List<Action> actions = new ArrayList<>(); actions.add(new EmptyTextSetter()); actions.add(new ComponentViewer()); @@ -112,67 +118,76 @@ /** * @return */ - private List createContribututions() { - List actions = new ArrayList(); + private List<IContributionItem> createContribututions() { + List<IContributionItem> actions = new ArrayList<>(); return actions; } /* * (non-Javadoc) * - * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) + * @see + * org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets + * .Composite) */ public void createPartControl(Composite parent) { ITextViewer text = new TextViewer(parent, SWT.MULTI); - text.setDocument(new Document()); + text.setDocument(fDocument); fControl = text.getTextWidget(); - text.getDocument().set("Use either the toolbar or the menu to run your actions\n\nWrite new lines with file paths and hit enter to open them.\n\n"); fControl.addKeyListener(new KeyAdapter() { @Override - public void keyPressed(KeyEvent e) { - if (e.character == '\r' ) { + public void keyPressed(KeyEvent keyEvent) { + if (keyEvent.character == '\r') { int offset = fControl.getCaretOffset(); try { IRegion lineInformation = text.getDocument().getLineInformationOfOffset(offset - 1); String path = text.getDocument().get(lineInformation.getOffset(), lineInformation.getLength()); - Event event = new Event(); - event.type = SWT.OpenDocument; - event.text = path; - event.widget = fControl; - Method m = parent.getDisplay().getClass().getDeclaredMethod("sendEvent", new Class[] {int.class, Event.class}); - m.setAccessible(true); - m.invoke(parent.getDisplay(), event.type, event); + if (path.trim().length() > 0) { + Event event = new Event(); + event.type = SWT.OpenDocument; + event.text = path.trim(); + event.widget = fControl; + Method m = parent.getDisplay().getClass().getDeclaredMethod("sendEvent", new Class[]{int.class, Event.class}); + m.setAccessible(true); + m.invoke(parent.getDisplay(), event.type, event); + } } - catch (BadLocationException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); + catch (BadLocationException e) { + Logger.logException(e); + e.printStackTrace(); } - catch (NoSuchMethodException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); + catch (NoSuchMethodException e) { + Logger.logException(e); + e.printStackTrace(); } - catch (SecurityException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); + catch (SecurityException e) { + Logger.logException(e); + e.printStackTrace(); } - catch (IllegalAccessException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); + catch (IllegalAccessException e) { + Logger.logException(e); + e.printStackTrace(); } - catch (IllegalArgumentException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); + catch (IllegalArgumentException e) { + Logger.logException(e); + e.printStackTrace(); } - catch (InvocationTargetException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); + catch (InvocationTargetException e) { + Logger.logException(e); + e.printStackTrace(); } } - super.keyReleased(e); + super.keyReleased(keyEvent); } }); } + @Override + public void saveState(IMemento memento) { + memento.putString(ACTIONTEXT, fDocument.get()); + super.saveState(memento); + } + private ISelectionListener getSelectionListener() { if (fSelectionListener == null) { fSelectionListener = new ISelectionListener() { @@ -184,24 +199,22 @@ return fSelectionListener; } - - - /* - * (non-Javadoc) - * - * @see org.eclipse.ui.IViewPart#init(org.eclipse.ui.IViewSite) - */ - public void init(IViewSite site) throws PartInitException { + public void init(IViewSite site, IMemento memento) throws PartInitException { super.init(site); - List actions = createActions(); - for (int i = 0; i < actions.size(); i++) { - site.getActionBars().getToolBarManager().add((IAction) actions.get(i)); - site.getActionBars().getMenuManager().add((IAction) actions.get(i)); + String contents = memento.getString(ACTIONTEXT); + if (contents == null || contents.length() == 0) { + contents = DEFAULT_ACTION_TEXT; } - List contributions = createContribututions(); + fDocument.set(contents); + List<Action> actions = createActions(); + for (int i = 0; i < actions.size(); i++) { + site.getActionBars().getToolBarManager().add(actions.get(i)); + site.getActionBars().getMenuManager().add(actions.get(i)); + } + List<IContributionItem> contributions = createContribututions(); for (int i = 0; i < contributions.size(); i++) { - site.getActionBars().getToolBarManager().add((IContributionItem) contributions.get(i)); - site.getActionBars().getMenuManager().add((IContributionItem) contributions.get(i)); + site.getActionBars().getToolBarManager().add(contributions.get(i)); + site.getActionBars().getMenuManager().add(contributions.get(i)); } site.getWorkbenchWindow().getSelectionService().addPostSelectionListener(getSelectionListener()); }