extracting method
This commit is contained in:
parent
b7e4c52dcb
commit
85963e1fe1
|
@ -7,6 +7,7 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ScreenGenerator {
|
||||
public static final String TS_DIALOG = "com.efiAnalytics.ui.dg";
|
||||
|
@ -89,6 +90,11 @@ public class ScreenGenerator {
|
|||
|
||||
|
||||
for (AbstractButton topLevel : topLevelButtons) {
|
||||
handleTopLevelButton(frame, topLevel);
|
||||
}
|
||||
}
|
||||
|
||||
private static void handleTopLevelButton(Frame frame, AbstractButton topLevel) throws InterruptedException, InvocationTargetException, IOException {
|
||||
SwingUtilities.invokeAndWait(topLevel::doClick);
|
||||
Thread.sleep(TOP_MENU_CLICK_DELAY);
|
||||
|
||||
|
@ -97,31 +103,18 @@ public class ScreenGenerator {
|
|||
"png",
|
||||
new File(DESTINATION + cleanName(topLevel.getText()) + ".png"));
|
||||
|
||||
printAllDialogs("dialogs after clicking ", JDialog.getWindows());
|
||||
java.util.List<JMenuItem> menuItems = new ArrayList<>();
|
||||
visitComponent(frame, null, "just clicked ", (parent, component) -> {
|
||||
if (component instanceof JMenuItem && component.getClass().getName().endsWith("aH.gc")) {
|
||||
JMenuItem menuItem = (JMenuItem) component;
|
||||
System.out.println("Menu item " + menuItem.getText());
|
||||
menuItems.add(menuItem);
|
||||
}
|
||||
});
|
||||
List<JMenuItem> menuItems = findMenuItems(frame);
|
||||
|
||||
for (JMenuItem menuItem : menuItems) {
|
||||
|
||||
for (JMenuItem m : menuItems) {
|
||||
|
||||
//d.getLocation()
|
||||
|
||||
SwingUtilities.invokeAndWait(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
SwingUtilities.invokeAndWait(() -> {
|
||||
try {
|
||||
|
||||
m.doClick();
|
||||
menuItem.doClick();
|
||||
Thread.sleep(MENU_CLICK_DELAY);
|
||||
|
||||
JDialog d = findDialog();
|
||||
if (d == null) {
|
||||
JDialog dialog = findDynamicDialog();
|
||||
if (dialog == null) {
|
||||
// this happens for example for disabled menu items
|
||||
return;
|
||||
}
|
||||
|
@ -132,23 +125,29 @@ public class ScreenGenerator {
|
|||
// ImageIO.write(screenFullImage, PNG, new File(DESTINATION + "full_" + d.getTitle() + ".png"));
|
||||
|
||||
ImageIO.write(
|
||||
getScreenShot(d),
|
||||
getScreenShot(dialog),
|
||||
PNG,
|
||||
new File(DESTINATION + cleanName(d.getTitle()) + ".png"));
|
||||
d.setVisible(false);
|
||||
d.dispose();
|
||||
new File(DESTINATION + cleanName(dialog.getTitle()) + ".png"));
|
||||
dialog.setVisible(false);
|
||||
dialog.dispose();
|
||||
} catch (Exception e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
printAllDialogs("total frames now = ", JFrame.getFrames());
|
||||
|
||||
Thread.sleep(1000);
|
||||
}
|
||||
|
||||
private static List<JMenuItem> findMenuItems(Frame frame) {
|
||||
List<JMenuItem> menuItems = new ArrayList<>();
|
||||
visitComponent(frame, null, "Just clicked ", (parent, component) -> {
|
||||
if (component instanceof JMenuItem && component.getClass().getName().endsWith("aH.gc")) {
|
||||
JMenuItem menuItem = (JMenuItem) component;
|
||||
System.out.println("Menu item " + menuItem.getText());
|
||||
menuItems.add(menuItem);
|
||||
}
|
||||
});
|
||||
return menuItems;
|
||||
}
|
||||
|
||||
private static String cleanName(String title) {
|
||||
|
@ -161,7 +160,7 @@ public class ScreenGenerator {
|
|||
return title;
|
||||
}
|
||||
|
||||
private static JDialog findDialog() {
|
||||
private static JDialog findDynamicDialog() {
|
||||
for (Window d : Dialog.getWindows()) {
|
||||
if (d.getClass().getName().equals(TS_DIALOG) && d.isVisible()) {
|
||||
return (JDialog) d;
|
||||
|
|
Loading…
Reference in New Issue