package org.jboss.tools.drools.reddeer.view;
import java.util.LinkedList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jboss.reddeer.swt.api.TreeItem;
import org.jboss.reddeer.swt.impl.tree.DefaultTree;
import org.jboss.reddeer.workbench.impl.view.WorkbenchView;
public class GlobalDataView extends WorkbenchView {
private static final Pattern NO_GLOBALS = Pattern.compile("The selected working memory has no globals defined\\.");
private static final Pattern GLOBAL_NAME = Pattern.compile("[^=]+");
public GlobalDataView() {
super("Drools", "Global Data");
}
public List<String> getGlobalsList() {
open();
List<String> globals = new LinkedList<String>();
String itemText;
Matcher m;
for (TreeItem item : new DefaultTree().getItems()) {
itemText = item.getText();
if (NO_GLOBALS.matcher(itemText).matches()) {
// no globals defined
break;
} else {
m = GLOBAL_NAME.matcher(itemText);
m.find();
globals.add(m.group());
}
}
return globals;
}
}