Skip to content

Commit

Permalink
UI cosmetics
Browse files Browse the repository at this point in the history
  • Loading branch information
RetGal committed Jan 7, 2025
1 parent a9e02e5 commit 43a343c
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 73 deletions.
5 changes: 1 addition & 4 deletions src/main/java/mpo/dayon/common/babylon/Babylon.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,7 @@ public static String translate(String tag, Object... arguments) {
if (arguments != null && arguments.length > 0) {
value = formatValue(locale, value, tag, arguments);
}
if (value != null) {
return value.trim();
}
return null;
return value != null ? value.trim() : null;
}
}

Expand Down
5 changes: 2 additions & 3 deletions src/main/java/mpo/dayon/common/gui/common/BaseFrame.java
Original file line number Diff line number Diff line change
Expand Up @@ -385,9 +385,8 @@ private JPanel createPanel(JTextField addressTextField, JTextField portNumberTex
tokenServerLbl.setFont(titleFont);
panel.add(tokenServerLbl, createGridBagConstraints(gridy++));

final JPanel tokenPanel = new JPanel(new GridLayout(3, 2, 10, 0));
tokenPanel.setBorder(BorderFactory.createEmptyBorder(10,0,0,0));

final JPanel tokenPanel = new JPanel(new GridLayout(2, 2, 10, 0));
tokenPanel.setBorder(BorderFactory.createEmptyBorder(10,0,10,0));

final JRadioButton defaultTokenRadio = new JRadioButton(translate("token.default.server"));
defaultTokenRadio.setActionCommand("default");
Expand Down
113 changes: 47 additions & 66 deletions src/main/java/mpo/dayon/common/gui/common/DialogFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,8 @@ public interface Validator {
public static boolean showOkCancel(final Component owner, final String title, final JComponent payloadPane, final boolean bordered, final Validator validator) {
final JButton ok = new JButton(translate("ok"));
final JButton cancel = new JButton(translate("cancel"));

final JButton[] buttons = new JButton[]{ok, cancel};

final JDialog dialog = createDialog(owner, title, payloadPane, bordered, buttons, ok, true);

final boolean[] result = new boolean[1];

ok.addActionListener(ev -> {
Expand All @@ -56,29 +53,56 @@ public static boolean showOkCancel(final Component owner, final String title, fi
});

dialog.setVisible(true);

return result[0];
}

/**
* Creates a modal dialog.
*/
private static JDialog createDialog(Component owner, String title, JComponent payloadPane, boolean bordered, JButton[] buttons, JButton defaultButton,
boolean hasEscapeButton) {
private static JDialog createDialog(Component owner, String title, JComponent payloadPane, boolean bordered, JButton[] buttons, JButton defaultButton, boolean hasEscapeButton) {
final Frame parent = owner instanceof Frame ? (Frame) owner : (Frame) SwingUtilities.getAncestorOfClass(Frame.class, owner);
JPanel contentPane = createContentPane(payloadPane, bordered, buttons);
JDialog dialog = new JDialog(parent, title, true);
dialog.setContentPane(contentPane);
dialog.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
dialog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
dialog.setVisible(false);
dialog.dispose();
}
});

payloadPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 15, 10));
if (hasEscapeButton) {
addEscapeButton(dialog);
}

SwingUtilities.getRootPane(defaultButton).setDefaultButton(defaultButton);
dialog.pack();
dialog.setLocationRelativeTo(parent);
return dialog;
}

final JPanel payloadPaneEx = new JPanel(new BorderLayout());
payloadPaneEx.add(payloadPane, BorderLayout.CENTER);
private static JPanel createContentPane(JComponent payloadPane, boolean bordered, JButton[] buttons) {
payloadPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 15, 10));
JPanel payloadPaneWrapper = new JPanel(new BorderLayout());
payloadPaneWrapper.add(payloadPane, BorderLayout.CENTER);

final JPanel payloadPaneExEx = new JPanel(new BorderLayout());
JPanel borderPane = new JPanel(new BorderLayout());
if (bordered) {
payloadPaneExEx.add(payloadPaneEx, BorderLayout.CENTER);
payloadPaneExEx.setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 10));
borderPane.add(payloadPaneWrapper, BorderLayout.CENTER);
borderPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 10));
}

final JPanel buttonPane = new JPanel();
JPanel buttonPane = createButtonPane(buttons, bordered);
JPanel contentPane = new JPanel(new BorderLayout());
contentPane.add(bordered ? borderPane : payloadPaneWrapper, BorderLayout.CENTER);
contentPane.add(buttonPane, BorderLayout.SOUTH);
return contentPane;
}

private static JPanel createButtonPane(JButton[] buttons, boolean bordered) {
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS));
buttonPane.add(Box.createHorizontalGlue());

Expand All @@ -87,72 +111,29 @@ private static JDialog createDialog(Component owner, String title, JComponent pa
buttonPane.add(button);
}

buttonPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 10));

// --

final JPanel contentPane = new JPanel(new BorderLayout());
if (bordered) {
contentPane.add(payloadPaneExEx, BorderLayout.CENTER);
} else {
contentPane.add(payloadPaneEx, BorderLayout.CENTER);
}
contentPane.add(buttonPane, BorderLayout.SOUTH);

// --

final JDialog dialog = new JDialog(parent, title, true);

// dialog.setIconImage(ImageFactory.getOrCreateIcon("ladybug.png").getImage());
dialog.setContentPane(contentPane);
dialog.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 0, bordered ? 20 : 10, bordered ? 20 : 10));
return buttonPane;
}

// --
private static void addEscapeButton(JDialog dialog) {
KeyStroke escape = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
InputMap inputMap = dialog.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(escape, "ESCAPE");

dialog.addWindowListener(new WindowAdapter() {
ActionMap actionMap = dialog.getRootPane().getActionMap();
actionMap.put("ESCAPE", new AbstractAction() {
@Override
public void windowClosing(WindowEvent e) {
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
}
});

// Make this dialog CANCELing on ESCAPE key
if (hasEscapeButton) {
final KeyStroke escape = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);

final InputMap inputMap = dialog.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(escape, "ESCAPE");

final ActionMap actionMap = dialog.getRootPane().getActionMap();
actionMap.put("ESCAPE", new AbstractAction() {

@Override
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
}
});
}

// --

SwingUtilities.getRootPane(defaultButton).setDefaultButton(defaultButton);

// --

dialog.pack();
dialog.setLocationRelativeTo(parent);

return dialog;
}

public static boolean showYesNo(Component owner, String title, String message) {
final Object[] options = {translate("yes"), translate("no")};

final int result = JOptionPane.showOptionDialog(owner, message, title, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options,
options[0]);

return result == 0;
}

Expand Down

0 comments on commit 43a343c

Please sign in to comment.