|
@@ -1,6 +1,5 @@
|
|
package holeg.ui.view.main;
|
|
package holeg.ui.view.main;
|
|
|
|
|
|
-import holeg.model.AbstractCanvasObject;
|
|
|
|
import holeg.model.GroupNode;
|
|
import holeg.model.GroupNode;
|
|
import holeg.model.Model;
|
|
import holeg.model.Model;
|
|
import holeg.preferences.ImagePreference;
|
|
import holeg.preferences.ImagePreference;
|
|
@@ -26,13 +25,11 @@ import javax.swing.*;
|
|
import javax.swing.filechooser.FileNameExtensionFilter;
|
|
import javax.swing.filechooser.FileNameExtensionFilter;
|
|
import javax.swing.filechooser.FileSystemView;
|
|
import javax.swing.filechooser.FileSystemView;
|
|
import java.awt.*;
|
|
import java.awt.*;
|
|
-import java.awt.event.ActionEvent;
|
|
|
|
import java.awt.event.InputEvent;
|
|
import java.awt.event.InputEvent;
|
|
import java.awt.event.KeyEvent;
|
|
import java.awt.event.KeyEvent;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.net.URI;
|
|
import java.net.URI;
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
-import java.util.Set;
|
|
|
|
import java.util.logging.Logger;
|
|
import java.util.logging.Logger;
|
|
import java.util.prefs.Preferences;
|
|
import java.util.prefs.Preferences;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -72,12 +69,12 @@ public class Gui extends JFrame {
|
|
private void initFrame() {
|
|
private void initFrame() {
|
|
this.setIconImage(Import.loadImage(ImagePreference.Logo, 30, 30));
|
|
this.setIconImage(Import.loadImage(ImagePreference.Logo, 30, 30));
|
|
this.setBounds(new Rectangle(prefs.getInt(PreferenceKeys.Gui.Width, 1200), prefs.getInt(PreferenceKeys.Gui.Height, 800)));
|
|
this.setBounds(new Rectangle(prefs.getInt(PreferenceKeys.Gui.Width, 1200), prefs.getInt(PreferenceKeys.Gui.Height, 800)));
|
|
|
|
+ Appearance.loadPrefs();
|
|
if (prefs.get(PreferenceKeys.Gui.Width, null) != null) {
|
|
if (prefs.get(PreferenceKeys.Gui.Width, null) != null) {
|
|
this.setLocation(prefs.getInt(PreferenceKeys.Gui.XPos, 1200), prefs.getInt(PreferenceKeys.Gui.YPos, 800));
|
|
this.setLocation(prefs.getInt(PreferenceKeys.Gui.XPos, 1200), prefs.getInt(PreferenceKeys.Gui.YPos, 800));
|
|
} else {
|
|
} else {
|
|
this.setLocationRelativeTo(null);
|
|
this.setLocationRelativeTo(null);
|
|
}
|
|
}
|
|
- GuiSettings.showSupplyBars = prefs.getBoolean(PreferenceKeys.Gui.SupplyBarVisible, true);
|
|
|
|
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
|
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
|
this.addWindowListener((WindowClosingListener) e -> {
|
|
this.addWindowListener((WindowClosingListener) e -> {
|
|
Rectangle bounds = this.getBounds();
|
|
Rectangle bounds = this.getBounds();
|
|
@@ -85,7 +82,7 @@ public class Gui extends JFrame {
|
|
prefs.putInt(PreferenceKeys.Gui.YPos, bounds.y);
|
|
prefs.putInt(PreferenceKeys.Gui.YPos, bounds.y);
|
|
prefs.putInt(PreferenceKeys.Gui.Width, bounds.width);
|
|
prefs.putInt(PreferenceKeys.Gui.Width, bounds.width);
|
|
prefs.putInt(PreferenceKeys.Gui.Height, bounds.height);
|
|
prefs.putInt(PreferenceKeys.Gui.Height, bounds.height);
|
|
- prefs.putBoolean(PreferenceKeys.Gui.SupplyBarVisible, GuiSettings.showSupplyBars);
|
|
|
|
|
|
+ Appearance.savePrefs();
|
|
control.saveCategories();
|
|
control.saveCategories();
|
|
if (JOptionPane.showConfirmDialog(this, "Are you sure you want to exit?", "HOLEG",
|
|
if (JOptionPane.showConfirmDialog(this, "Are you sure you want to exit?", "HOLEG",
|
|
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) {
|
|
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION) {
|
|
@@ -178,7 +175,8 @@ public class Gui extends JFrame {
|
|
//ViewMenu
|
|
//ViewMenu
|
|
private final JMenu appearanceMenu = new JMenu("Appearance");
|
|
private final JMenu appearanceMenu = new JMenu("Appearance");
|
|
private final JMenuItem canvasSizeButton = new JMenuItem("Set View Size");
|
|
private final JMenuItem canvasSizeButton = new JMenuItem("Set View Size");
|
|
- private final JCheckBoxMenuItem showSupplyBarsCheckBox = new JCheckBoxMenuItem("Show supply bars.", GuiSettings.showSupplyBars);
|
|
|
|
|
|
+ private final JCheckBoxMenuItem showSupplyBarsCheckBox = new JCheckBoxMenuItem("Supply bars", Appearance.supplyBarVisible);
|
|
|
|
+ private final JCheckBoxMenuItem edgeCapacityVisibleCheckBox = new JCheckBoxMenuItem("Edge Capacity", Appearance.edgeCapacityVisible);
|
|
private final JFileChooser fileChooser = initFileChooser();
|
|
private final JFileChooser fileChooser = initFileChooser();
|
|
|
|
|
|
private final static int IconSize = 15;
|
|
private final static int IconSize = 15;
|
|
@@ -250,6 +248,7 @@ public class Gui extends JFrame {
|
|
|
|
|
|
viewMenu.add(appearanceMenu);
|
|
viewMenu.add(appearanceMenu);
|
|
appearanceMenu.add(showSupplyBarsCheckBox);
|
|
appearanceMenu.add(showSupplyBarsCheckBox);
|
|
|
|
+ appearanceMenu.add(edgeCapacityVisibleCheckBox);
|
|
viewMenu.add(canvasSizeButton);
|
|
viewMenu.add(canvasSizeButton);
|
|
|
|
|
|
windowMenu.add(algorithmButton);
|
|
windowMenu.add(algorithmButton);
|
|
@@ -287,7 +286,14 @@ public class Gui extends JFrame {
|
|
});
|
|
});
|
|
resetCategoryButton.addActionListener(clicked -> control.resetCategories());
|
|
resetCategoryButton.addActionListener(clicked -> control.resetCategories());
|
|
|
|
|
|
- showSupplyBarsCheckBox.addActionListener(clicked -> toggleSupplyBarAppearance());
|
|
|
|
|
|
+ showSupplyBarsCheckBox.addActionListener(clicked -> {
|
|
|
|
+ Appearance.supplyBarVisible = showSupplyBarsCheckBox.isSelected();
|
|
|
|
+ control.OnCanvasUpdate.broadcast();
|
|
|
|
+ });
|
|
|
|
+ edgeCapacityVisibleCheckBox.addActionListener(clicked -> {
|
|
|
|
+ Appearance.edgeCapacityVisible = edgeCapacityVisibleCheckBox.isSelected();
|
|
|
|
+ control.OnCanvasUpdate.broadcast();
|
|
|
|
+ });
|
|
canvasSizeButton.addActionListener(clicked -> new CanvasResizePopUp(control, Gui.this));
|
|
canvasSizeButton.addActionListener(clicked -> new CanvasResizePopUp(control, Gui.this));
|
|
algorithmButton.addActionListener(clicked -> new AddOnWindow(Gui.this, control));
|
|
algorithmButton.addActionListener(clicked -> new AddOnWindow(Gui.this, control));
|
|
outlinerButton.addActionListener(clicked -> new Outliner(Gui.this, control));
|
|
outlinerButton.addActionListener(clicked -> new Outliner(Gui.this, control));
|
|
@@ -347,13 +353,6 @@ public class Gui extends JFrame {
|
|
flexMenuButton.setAccelerator(KeyStroke.getKeyStroke('F', InputEvent.ALT_DOWN_MASK));
|
|
flexMenuButton.setAccelerator(KeyStroke.getKeyStroke('F', InputEvent.ALT_DOWN_MASK));
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- private void toggleSupplyBarAppearance() {
|
|
|
|
- GuiSettings.showSupplyBars = showSupplyBarsCheckBox.isSelected();
|
|
|
|
- control.OnCanvasUpdate.broadcast();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
private void saveFile() {
|
|
private void saveFile() {
|
|
GuiSettings.getActualSaveFile().ifPresentOrElse(control::saveFile, this::saveNewFile);
|
|
GuiSettings.getActualSaveFile().ifPresentOrElse(control::saveFile, this::saveNewFile);
|
|
}
|
|
}
|