extracted tutorial frame to its own class
diff --git a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
index e01f5df..658e7c5 100644
--- a/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
+++ b/src/main/java/org/apache/log4j/chainsaw/ChainsawToolBarAndMenus.java
@@ -501,7 +501,7 @@
Action startTutorial =
new AbstractAction("Tutorial...", new ImageIcon(ChainsawIcons.HELP)) {
public void actionPerformed(ActionEvent e) {
- logui.setupTutorial();
+ logui.tutorialFrame.setupTutorial();
}
};
diff --git a/src/main/java/org/apache/log4j/chainsaw/LogUI.java b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
index 8496e80..45f9e06 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LogUI.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LogUI.java
@@ -101,7 +101,7 @@
private ChainsawToolBarAndMenus chainsawToolBarAndMenus;
private ChainsawAbout aboutBox;
private SettingsManager settingsManager;
- private final JFrame tutorialFrame = new JFrame("Chainsaw Tutorial");
+ public TutorialFrame tutorialFrame;
private JSplitPane mainReceiverSplitPane;
private double lastMainReceiverSplitLocation = DEFAULT_MAIN_RECEIVER_SPLIT_LOCATION;
private final List<LogPanel> identifierPanels = new ArrayList<>();
@@ -249,11 +249,11 @@
private void setupHelpSystem() {
welcomePanel = new WelcomePanel();
+ tutorialFrame = new TutorialFrame(receivers, receiverListeners, this, statusBar) ;
+
JToolBar tb = welcomePanel.getToolbar();
-
-
JButton help = new SmallButton.Builder().iconUrl(ChainsawIcons.HELP)
- .action(this::setupTutorial).shortDescription("Tutorial").build();
+ .action(tutorialFrame::setupTutorial).shortDescription("Tutorial").build();
tb.add(help);
@@ -602,7 +602,7 @@
SwingHelper.invokeOnEDT(this::showReceiverConfigurationPanel);
}
- new TutorialFrame(receivers, receiverListeners, this).createTutorialFrame(tutorialFrame, statusBar);
+
/*
* loads the saved tab settings and if there are hidden tabs,
@@ -1242,26 +1242,6 @@
return applicationPreferenceModel;
}
- public void setupTutorial() {
- SwingUtilities.invokeLater(
- () -> {
- Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
- setLocation(0, getLocation().y);
-
- double chainsawwidth = 0.7;
- double tutorialwidth = 1 - chainsawwidth;
- setSize((int) (screen.width * chainsawwidth), getSize().height);
- invalidate();
- validate();
-
- Dimension size = getSize();
- Point loc = getLocation();
- tutorialFrame.setSize(
- (int) (screen.width * tutorialwidth), size.height);
- tutorialFrame.setLocation(loc.x + size.width, loc.y);
- tutorialFrame.setVisible(true);
- });
- }
private void buildLogPanel(
boolean customExpression, final String ident, final List<ChainsawLoggingEvent> events, final ChainsawReceiver rx)
diff --git a/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java
index 0f2abd3..96cb22c 100644
--- a/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java
+++ b/src/main/java/org/apache/log4j/chainsaw/components/tutorial/TutorialFrame.java
@@ -20,23 +20,45 @@
import java.io.IOException;
import java.util.List;
-public class TutorialFrame {
+public class TutorialFrame extends JFrame {
public static final String LABEL_TUTORIAL_STARTED = "TutorialStarted";
private final Logger logger = LogManager.getLogger(TutorialFrame.class);
- private List<ChainsawReceiver> receivers;
- private List<ReceiverEventListener> receiverEventListeners;
- private LogUI logUI;
- private final JFrame tutorialFrame = new JFrame("Chainsaw Tutorial");
- public TutorialFrame(List<ChainsawReceiver> receivers, List<ReceiverEventListener> receiverEventListeners, LogUI logUI) {
+ private final List<ChainsawReceiver> receivers;
+ private final List<ReceiverEventListener> receiverEventListeners;
+ private final LogUI logUI;
+
+ public TutorialFrame(List<ChainsawReceiver> receivers, List<ReceiverEventListener> receiverEventListeners, LogUI logUI, ChainsawStatusBar statusBar) {
+ super("Chainsaw Tutorial");
this.receivers = receivers;
this.receiverEventListeners = receiverEventListeners;
this.logUI = logUI;
+
+ createTutorialFrame(statusBar);
}
- public void createTutorialFrame(JFrame tutorialFrame, ChainsawStatusBar statusBar) {
- Container container = tutorialFrame.getContentPane();
+ public void setupTutorial() {
+ SwingUtilities.invokeLater(
+ () -> {
+ Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
+ setLocation(0, getLocation().y);
+
+ double chainsawwidth = 0.7;
+ double tutorialwidth = 1 - chainsawwidth;
+ setSize((int) (screen.width * chainsawwidth), getSize().height);
+ invalidate();
+ validate();
+
+ Dimension size = getSize();
+ Point loc = getLocation();
+ setSize((int) (screen.width * tutorialwidth), size.height);
+ setLocation(loc.x + size.width, loc.y);
+ setVisible(true);
+ });
+ }
+ public void createTutorialFrame(ChainsawStatusBar statusBar) {
+ Container container = getContentPane();
container.setLayout(new BorderLayout());
final JEditorPane tutorialArea = new JEditorPane();
@@ -52,8 +74,8 @@
statusBar.setMessage("Can't load tutorial");
}
- this.tutorialFrame.setIconImage(new ImageIcon(ChainsawIcons.HELP).getImage());
- this.tutorialFrame.setSize(new Dimension(640, 480));
+ this.setIconImage(new ImageIcon(ChainsawIcons.HELP).getImage());
+ this.setSize(new Dimension(640, 480));
final Action startTutorial = createStartTutorialAction();
final Action stopTutorial = createStopTutorialAction(startTutorial);
@@ -72,8 +94,7 @@
tutorialArea.setPage(e.getURL());
} catch (IOException e1) {
statusBar.setMessage("Failed to change URL for tutorial");
- logger.error(
- "Failed to change the URL for the Tutorial", e1);
+ logger.error("Failed to change the URL for the Tutorial", e1);
}
}
}