Author: ljelinko
Date: 2012-01-04 06:28:50 -0500 (Wed, 04 Jan 2012)
New Revision: 37635
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/debug/PrintWidgetsTask.java
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/BasicWidgetsVisitor.java
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/VisitableWidget.java
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/WidgetFindingTask.java
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/WidgetVisitor.java
Removed:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/debug/WriteAllWidgets.java
Log:
refactored debugging functionality
Copied:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/debug/PrintWidgetsTask.java
(from rev 37554,
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/debug/WriteAllWidgets.java)
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/debug/PrintWidgetsTask.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/debug/PrintWidgetsTask.java 2012-01-04
11:28:50 UTC (rev 37635)
@@ -0,0 +1,246 @@
+package org.jboss.tools.portlet.ui.bot.task.debug;
+
+import java.io.PrintStream;
+
+import javax.swing.table.TableColumn;
+
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Scale;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Slider;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.swt.widgets.Tray;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+import org.hamcrest.Matcher;
+import org.jboss.tools.portlet.ui.bot.task.AbstractSWTTask;
+import org.jboss.tools.portlet.ui.bot.task.finder.BasicWidgetsVisitor;
+import org.jboss.tools.portlet.ui.bot.task.finder.WidgetFindingTask;
+
+/**
+ * Finds all widgets recursively and writes debuggin information about each of them.
+ *
+ * @author Lucia Jelinkova
+ *
+ */
+public class PrintWidgetsTask extends AbstractSWTTask {
+
+ private Matcher<? extends Widget> matcher;
+
+ private Widget parentWidget;
+
+ private PrintStream stream;
+
+ public PrintWidgetsTask() {
+ this(null);
+ }
+
+ public PrintWidgetsTask(Matcher<? extends Widget> matcher) {
+ this(matcher, null);
+ }
+
+ public PrintWidgetsTask(Matcher<? extends Widget> matcher, Widget parentWidget) {
+ this(matcher, parentWidget, System.out);
+ }
+
+ public PrintWidgetsTask(Matcher<? extends Widget> matcher, Widget parentWidget,
PrintStream stream) {
+ super();
+ this.matcher = matcher;
+ this.parentWidget = parentWidget;
+ this.stream = stream;
+ }
+
+ @Override
+ public void perform() {
+ stream.println("--------------- Start of the list of widgets
---------------");
+ performInnerTask(new WidgetFindingTask(parentWidget, matcher, new
WriteAllWidgetsVisitor()));
+ stream.println("--------------- End of the list of widgets
---------------");
+ }
+
+ private class WriteAllWidgetsVisitor extends BasicWidgetsVisitor {
+
+ @Override
+ protected void visitButton(Button widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitBrowser(Browser widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitCCombo(CCombo widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitCLabel(CLabel widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitCombo(Combo widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitCTabItem(CTabItem widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitDateTime(DateTime widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitExpandBar(ExpandBar widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitExpandItem(ExpandItem widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitLabel(Label widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitLink(Link widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitList(List widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitMenu(Menu widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitScale(Scale widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitShell(Shell widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitSlider(Slider widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitSpinner(Spinner widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitStyledText(StyledText widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitTabItem(TabItem widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitTable(Table widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitTableColumn(TableColumn widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitTableItem(TableItem widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitText(Text widget) {
+ stream.print("Text {");
+ stream.print(widget.getText());
+ stream.println("}");
+ }
+
+ @Override
+ protected void visitToolBar(ToolBar widget) {
+ stream.print("Toolbar {");
+ stream.print(widget.getRowCount() + " row(s), ");
+ stream.print(widget.getItemCount() + " item(s)");
+ stream.println("}");
+ }
+
+ @Override
+ protected void visitToolItem(ToolItem widget) {
+ stream.print("Toolitem {");
+ stream.print("text = '" + widget.getText() + "', ");
+ stream.print("tooltip = '" + widget.getToolTipText() +
"'");
+ stream.println("}");
+ }
+
+ @Override
+ protected void visitTray(Tray widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitTree(Tree widget) {
+ stream.print("Tree {");
+ stream.print(widget.getItemCount() + " item(s), ");
+ stream.print(widget.getColumnCount() + " columns(s)");
+ stream.println("}");
+ }
+
+ @Override
+ protected void visitTreeItem(TreeItem widget) {
+ stream.println(widget);
+ }
+
+ @Override
+ protected void visitHyperLink(Hyperlink widget) {
+ stream.print("Hyperlink {");
+ stream.print("text = '" + widget.getText() + "'");
+ stream.println("}");
+ }
+
+ @Override
+ protected void visitUnkownItem(Widget widget) {
+ stream.println("Unknown: " + widget);
+ }
+ }
+}
Deleted:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/debug/WriteAllWidgets.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/debug/WriteAllWidgets.java 2012-01-04
11:02:46 UTC (rev 37634)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/debug/WriteAllWidgets.java 2012-01-04
11:28:50 UTC (rev 37635)
@@ -1,98 +0,0 @@
-package org.jboss.tools.portlet.ui.bot.task.debug;
-
-import static org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable.syncExec;
-import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.swtbot.swt.finder.results.VoidResult;
-import org.hamcrest.Matcher;
-import org.jboss.tools.portlet.ui.bot.task.AbstractSWTTask;
-
-/**
- * Finds all widgets recursively and writes debuggin information about each of them.
- *
- * @author Lucia Jelinkova
- *
- */
-public class WriteAllWidgets extends AbstractSWTTask {
-
- private Matcher<? extends Widget> matcher;
-
- private Widget parentWidget;
-
- /**
- * Finds all widgets for the active shell.
- */
- public WriteAllWidgets() {
- this(widgetOfType(Widget.class));
- }
-
- /**
- * Finds all widgets meeting specified matcher's condition for the active shell.
- *
- * @param matcher
- */
- public WriteAllWidgets(Matcher<? extends Widget> matcher) {
- this(null, matcher);
- }
-
- /**
- * Finds all widgets starting from the specified widget meeting
- * specified matcher condition.
- *
- * @param widget
- * @param matcher
- */
- public WriteAllWidgets(Widget widget, Matcher<? extends Widget> matcher) {
- super();
- this.matcher = matcher;
- this.parentWidget = widget;
- }
-
- @Override
- public void perform() {
- syncExec(new VoidResult() {
-
- @Override
- public void run() {
- System.out.println("List of current widgets");
- writeWidgetRecursive(getParentWidget(), new ArrayList<Widget>(),
"");
- System.out.println("End of list");
- }
- });
- }
-
- private void writeWidgetRecursive(Widget widget, ArrayList<Widget> visited, String
prefix){
-
- if (visited.contains(widget)){
- return;
- }
-
- visited.add(widget);
- writeWidget(widget, prefix);
-
- if (widget instanceof Composite && ((Composite) widget).getChildren().length ==
0){
- return;
- }
-
- List<? extends Widget> children = getBot().widgets(matcher, widget);
- for (Widget child : children){
- writeWidgetRecursive(child, visited, prefix + "---");
- }
- }
-
- private void writeWidget(Widget widget, String prefix){
- System.out.println(prefix + widget);
- }
-
- private Widget getParentWidget() {
- if (parentWidget == null){
- return getBot().activeShell().widget;
- }
- return parentWidget;
- }
-}
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/BasicWidgetsVisitor.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/BasicWidgetsVisitor.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/BasicWidgetsVisitor.java 2012-01-04
11:28:50 UTC (rev 37635)
@@ -0,0 +1,165 @@
+package org.jboss.tools.portlet.ui.bot.task.finder;
+
+import javax.swing.table.TableColumn;
+
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.custom.CTabItem;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Scale;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Slider;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.swt.widgets.Tray;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+
+/**
+ * Distinguishes basic types that are known for SWTBot.
+ *
+ * @author Lucia Jelinkova
+ *
+ */
+public abstract class BasicWidgetsVisitor implements WidgetVisitor {
+
+ @Override
+ public void visit(Widget widget) {
+ if (widget instanceof Button){
+ visitButton((Button) widget);
+ } else if (widget instanceof Browser){
+ visitBrowser((Browser) widget);
+ } else if (widget instanceof CCombo){
+ visitCCombo((CCombo) widget);
+ } else if (widget instanceof CLabel){
+ visitCLabel((CLabel) widget);
+ } else if (widget instanceof Combo){
+ visitCombo((Combo) widget);
+ } else if (widget instanceof CTabItem){
+ visitCTabItem((CTabItem) widget);
+ } else if (widget instanceof DateTime){
+ visitDateTime((DateTime) widget);
+ } else if (widget instanceof ExpandBar){
+ visitExpandBar((ExpandBar) widget);
+ } else if (widget instanceof ExpandItem){
+ visitExpandItem((ExpandItem) widget);
+ } else if (widget instanceof Label){
+ visitLabel((Label) widget);
+ } else if (widget instanceof Link){
+ visitLink((Link) widget);
+ } else if (widget instanceof List){
+ visitList((List) widget);
+ } else if (widget instanceof Menu){
+ visitMenu((Menu) widget);
+ } else if (widget instanceof Scale){
+ visitScale((Scale) widget);
+ } else if (widget instanceof Shell){
+ visitShell((Shell) widget);
+ } else if (widget instanceof Slider){
+ visitSlider((Slider) widget);
+ } else if (widget instanceof Spinner){
+ visitSpinner((Spinner) widget);
+ } else if (widget instanceof StyledText){
+ visitStyledText((StyledText) widget);
+ } else if (widget instanceof TabItem){
+ visitTabItem((TabItem) widget);
+ } else if (widget instanceof Table){
+ visitTable((Table) widget);
+ } else if (widget instanceof TableItem){
+ visitTableItem((TableItem) widget);
+ } else if (widget instanceof Text){
+ visitText((Text) widget);
+ } else if (widget instanceof ToolBar){
+ visitToolBar((ToolBar) widget);
+ } else if (widget instanceof ToolItem){
+ visitToolItem((ToolItem) widget);
+ } else if (widget instanceof Tray){
+ visitTray((Tray) widget);
+ } else if (widget instanceof Tree){
+ visitTree((Tree) widget);
+ } else if (widget instanceof TreeItem){
+ visitTreeItem((TreeItem) widget);
+ } else if (widget instanceof Hyperlink){
+ visitHyperLink((Hyperlink) widget);
+ } else {
+ visitUnkownItem(widget);
+ }
+ }
+
+ protected abstract void visitButton(Button widget);
+
+ protected abstract void visitBrowser(Browser widget);
+
+ protected abstract void visitCCombo(CCombo widget);
+
+ protected abstract void visitCLabel(CLabel widget);
+
+ protected abstract void visitCombo(Combo widget);
+
+ protected abstract void visitCTabItem(CTabItem widget);
+
+ protected abstract void visitDateTime(DateTime widget);
+
+ protected abstract void visitExpandBar(ExpandBar widget);
+
+ protected abstract void visitExpandItem(ExpandItem widget);
+
+ protected abstract void visitLabel(Label widget);
+
+ protected abstract void visitLink(Link widget);
+
+ protected abstract void visitList(List widget);
+
+ protected abstract void visitMenu(Menu widget);
+
+ protected abstract void visitScale(Scale widget);
+
+ protected abstract void visitShell(Shell widget);
+
+ protected abstract void visitSlider(Slider widget);
+
+ protected abstract void visitSpinner(Spinner widget);
+
+ protected abstract void visitStyledText(StyledText widget);
+
+ protected abstract void visitTabItem(TabItem widget);
+
+ protected abstract void visitTable(Table widget);
+
+ protected abstract void visitTableColumn(TableColumn widget);
+
+ protected abstract void visitTableItem(TableItem widget);
+
+ protected abstract void visitText(Text widget);
+
+ protected abstract void visitToolBar(ToolBar widget);
+
+ protected abstract void visitToolItem(ToolItem widget);
+
+ protected abstract void visitTray(Tray widget);
+
+ protected abstract void visitTree(Tree widget);
+
+ protected abstract void visitTreeItem(TreeItem widget);
+
+ protected abstract void visitHyperLink(Hyperlink widget);
+
+ protected abstract void visitUnkownItem(Widget widget);
+}
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/VisitableWidget.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/VisitableWidget.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/VisitableWidget.java 2012-01-04
11:28:50 UTC (rev 37635)
@@ -0,0 +1,23 @@
+package org.jboss.tools.portlet.ui.bot.task.finder;
+
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * Wraps {@link Widget} so that it can be used
+ * in Visitor pattern.
+ *
+ * @author Lucia Jelinkova
+ *
+ */
+public class VisitableWidget {
+
+ private Widget widget;
+
+ public VisitableWidget(Widget w) {
+ this.widget = w;
+ }
+
+ public void accept(WidgetVisitor visitor){
+ visitor.visit(widget);
+ }
+}
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/WidgetFindingTask.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/WidgetFindingTask.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/WidgetFindingTask.java 2012-01-04
11:28:50 UTC (rev 37635)
@@ -0,0 +1,108 @@
+package org.jboss.tools.portlet.ui.bot.task.finder;
+
+import static org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable.syncExec;
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.swtbot.swt.finder.results.VoidResult;
+import org.hamcrest.Matcher;
+import org.jboss.tools.portlet.ui.bot.task.AbstractSWTTask;
+
+/**
+ *
+ * Finds all widgets recursively and delegates the concrete action
+ * to be performed on the visitor (see GOF Visitor pattern)
+ *
+ * @author Lucia Jelinkova
+ *
+ */
+public class WidgetFindingTask extends AbstractSWTTask {
+
+ private Matcher<? extends Widget> matcher;
+
+ private Widget parentWidget;
+
+ private WidgetVisitor visitor;
+
+ /**
+ * Finds all widgets for the active shell.
+ */
+ public WidgetFindingTask(WidgetVisitor visitor) {
+ this(null, visitor);
+ }
+
+ /**
+ * Finds all widgets meeting specified matcher's condition for the active shell.
+ *
+ * @param matcher
+ */
+ public WidgetFindingTask(Matcher<? extends Widget> matcher, WidgetVisitor visitor)
{
+ this(null, matcher, visitor);
+ }
+
+ /**
+ * Finds all widgets starting from the specified widget meeting
+ * specified matcher condition.
+ *
+ * @param widget
+ * @param matcher
+ */
+ public WidgetFindingTask(Widget widget, Matcher<? extends Widget> matcher,
WidgetVisitor visitor) {
+ super();
+ this.matcher = matcher;
+ this.parentWidget = widget;
+ this.visitor = visitor;
+ }
+
+ @Override
+ public void perform() {
+ syncExec(new VoidResult() {
+
+ @Override
+ public void run() {
+ findWidgetRecursive(getParentWidget(), new ArrayList<Widget>());
+ }
+ });
+ }
+
+ private void findWidgetRecursive(Widget widget, ArrayList<Widget> visited){
+
+ if (visited.contains(widget)){
+ return;
+ }
+
+ visited.add(widget);
+ visitWidget(widget);
+
+ if (widget instanceof Composite && ((Composite) widget).getChildren().length ==
0){
+ return;
+ }
+
+ List<? extends Widget> children = getBot().widgets(getMatcher(), widget);
+ for (Widget child : children){
+ findWidgetRecursive(child, visited);
+ }
+ }
+
+ private void visitWidget(Widget widget){
+ new VisitableWidget(widget).accept(visitor);
+ }
+
+ public Matcher<? extends Widget> getMatcher() {
+ if (matcher == null){
+ matcher = widgetOfType(Widget.class);
+ }
+ return matcher;
+ }
+
+ private Widget getParentWidget() {
+ if (parentWidget == null){
+ parentWidget = getBot().activeShell().widget;
+ }
+ return parentWidget;
+ }
+}
Added:
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/WidgetVisitor.java
===================================================================
---
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/WidgetVisitor.java
(rev 0)
+++
trunk/portlet/tests/org.jboss.tools.portlet.ui.bot.test/src/org/jboss/tools/portlet/ui/bot/task/finder/WidgetVisitor.java 2012-01-04
11:28:50 UTC (rev 37635)
@@ -0,0 +1,15 @@
+package org.jboss.tools.portlet.ui.bot.task.finder;
+
+import org.eclipse.swt.widgets.Widget;
+
+/**
+ * Visitor for the {@link Widget} objects.
+ *
+ * @author Lucia Jelinkova
+ *
+ */
+public interface WidgetVisitor {
+
+ void visit(Widget widget);
+
+}