// If the league tracker is there, we can skip the faff
// and ask for its tooltip, since we're on a boat
- Accessible leagueTracker = descendNodes(window,new int[] {0,1,0,0,2,1,1,1});
+ Accessible leagueTrackerContainer = descendNodes(window,new int[] {0,1,0,0,2,1});
+ Accessible leagueTrackerItself = descendByClass(leagueTrackerContainer,
+ "com.threerings.yohoho.sea.client.LeagueTracker");
+ Accessible leagueTracker = descend(leagueTrackerItself, 1);
try {
islandName = ((JLabel)leagueTracker).getToolTipText();
} catch (NullPointerException e) {
if (dtxt!=null) dtxt.println("DESCEND "+childNum+" "+child.getClass().getName()+" OK");
return child;
}
-
+
+ /**
+ * Descends one level to the child which has the specified class.
+ *
+ * @param parent the node with children
+ * @param classname the name of the class, as a string
+ * @return the child or <code>null</code> if the child is not found.
+ */
+ private Accessible descendByClass(Accessible parent, String classname) {
+ if (parent == null) return null;
+ AccessibleContext ac = parent.getAccessibleContext();
+ int children = ac.getAccessibleChildrenCount();
+ for (int i=0; i<children; i++) {
+ Accessible child = ac.getAccessibleChild(i);
+ if (child.getClass().getName() == classname) {
+ if (dtxt!=null) dtxt.println("DESCEND CLASS "+classname+" OK");
+ return child;
+ }
+ }
+ if (dtxt!=null) dtxt.println("DESCEND CLASS "+classname+" NOT FOUND");
+ return null;
+ }
+
public static void main(String[] args) {
new MarketUploader();
}