diff --git a/.classpath b/.classpath
index 440f8ec..5a6230c 100644
--- a/.classpath
+++ b/.classpath
@@ -6,8 +6,8 @@
-
+
-
+
diff --git a/.gitignore b/.gitignore
index c01385e..e9ea9a6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,4 +11,5 @@ tmp/
local.properties
.loadpath
.metadata
-workspace.xml
\ No newline at end of file
+workspace.xml
+settings.json
\ No newline at end of file
diff --git a/README.md b/README.md
index a6fb438..3985eb1 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ manobras, e pilotar rovers.
---
É necessário ter o [Java](https://java.com/pt-BR/) instalado para utilizar o "MechPeste.jar".
Uma versão mais atualizada do
-mod [KRPC](https://github.com/nullprofile/krpc/releases/download/0.4.9-1.12.1/krpc-0.4.9-1.12.1.zip)
+mod [KRPC](https://github.com/krpc/krpc/releases/download/v0.5.1/krpc-0.5.1.zip)
pode ser instalada diretamente do aplicativo MechPeste pelo menu Arquivo > Instalar KRPC.
## **Como instalar:**
diff --git a/src/com/pesterenan/MechPeste.java b/src/com/pesterenan/MechPeste.java
index 8460188..4f6fc12 100644
--- a/src/com/pesterenan/MechPeste.java
+++ b/src/com/pesterenan/MechPeste.java
@@ -74,7 +74,7 @@ private static boolean filterVessels(Vessel vessel, String search) {
if (search == "all") {
return true;
}
- double TWO_KILOMETERS = 2000.0;
+ double TEN_KILOMETERS = 10000.0;
try {
Vessel active = MechPeste.getSpaceCenter().getActiveVessel();
if (vessel.getOrbit().getBody().getName().equals(active.getOrbit().getBody().getName())) {
@@ -83,7 +83,7 @@ private static boolean filterVessels(Vessel vessel, String search) {
final double distance = Vector.distance(activePos, vesselPos);
switch (search) {
case "closest":
- if (distance < TWO_KILOMETERS) {
+ if (distance < TEN_KILOMETERS) {
return true;
}
break;
diff --git a/src/com/pesterenan/controllers/LiftoffController.java b/src/com/pesterenan/controllers/LiftoffController.java
index dcc48d9..b565948 100644
--- a/src/com/pesterenan/controllers/LiftoffController.java
+++ b/src/com/pesterenan/controllers/LiftoffController.java
@@ -126,7 +126,7 @@ private void finalizeCurve() throws RPCException, StreamException, InterruptedEx
private void circularizeOrbitOnApoapsis() {
setCurrentStatus(Bundle.getString("status_planning_orbit"));
Map commands = new HashMap<>();
- commands.put(Modulos.MODULO.get(), Modulos.MODULO_MANOBRAS.get());
+ commands.put(Modulos.MODULO.get(), Modulos.MODULO_EXEC_MANOBRAS.get());
commands.put(Modulos.FUNCAO.get(), Modulos.APOASTRO.get());
commands.put(Modulos.AJUSTE_FINO.get(), String.valueOf(false));
MechPeste.newInstance().startModule(commands);
diff --git a/src/com/pesterenan/controllers/ManeuverController.java b/src/com/pesterenan/controllers/ManeuverController.java
index 9798dcf..398c2d9 100644
--- a/src/com/pesterenan/controllers/ManeuverController.java
+++ b/src/com/pesterenan/controllers/ManeuverController.java
@@ -334,19 +334,17 @@ public void executeBurn(Node noDeManobra, double duracaoDaQueima) {
Stream> queimaRestante = getConnection().addStream(noDeManobra,
"remainingBurnVector", noDeManobra.getReferenceFrame());
setCurrentStatus(Bundle.getString("status_maneuver_executing"));
- double remainingBurnTime = duracaoDaQueima + 0.5;
while (noDeManobra != null) {
if (Thread.interrupted()) {
throw new InterruptedException();
}
- if (remainingBurnTime < 0.0 || queimaRestante.get().getValue1() < (fineAdjustment ? 2 : 0.5)) {
+ if (queimaRestante.get().getValue1() < (fineAdjustment ? 2 : 0.5)) {
throttle(0.0f);
break;
}
navigation.aimAtManeuver(noDeManobra);
throttle(ctrlManeuver.calcPID((noDeManobra.getDeltaV() - Math.floor(queimaRestante.get().getValue1())) /
noDeManobra.getDeltaV() * 1000, 1000));
- remainingBurnTime -= 0.05;
Thread.sleep(50);
}
throttle(0.0f);
diff --git a/src/com/pesterenan/model/ActiveVessel.java b/src/com/pesterenan/model/ActiveVessel.java
index 7d858d6..2fd88d1 100644
--- a/src/com/pesterenan/model/ActiveVessel.java
+++ b/src/com/pesterenan/model/ActiveVessel.java
@@ -182,7 +182,7 @@ public void startModule(Map commands) {
controller = new LandingController(commands);
runningModule = true;
}
- if (currentFunction.equals(Modulos.MODULO_MANOBRAS.get())) {
+ if (currentFunction.equals(Modulos.MODULO_EXEC_MANOBRAS.get())) {
controller = new ManeuverController(commands);
runningModule = true;
}
diff --git a/src/com/pesterenan/resources/MechPesteBundle.properties b/src/com/pesterenan/resources/MechPesteBundle.properties
index a189d31..ee168f7 100644
--- a/src/com/pesterenan/resources/MechPesteBundle.properties
+++ b/src/com/pesterenan/resources/MechPesteBundle.properties
@@ -1,6 +1,7 @@
btn_func_landing = Auto Landing
btn_func_liftoff = Orbital Liftoff
-btn_func_maneuvers = Exec. Maneuvers
+btn_func_create_maneuver = Create Maneuvers
+btn_func_exec_maneuver = Exec. Maneuvers
btn_func_rover = Drive Rover
btn_stat_connect = Connect
installer_dialog_btn_browse = Browse...
@@ -8,7 +9,7 @@ installer_dialog_btn_cancel = Cancel
installer_dialog_btn_download = Download file and install
installer_dialog_pnl_path = Path to KSP's folder\:
installer_dialog_title = KRPC Installer
-installer_dialog_txt_info = Here you can download the recommended version of KRPC to use with MechPeste.
The app will connect and download the 0.4.9 version from nullprofile's GitHub, who is maintaining this version of KRPC.
+installer_dialog_txt_info = Here you can download the latest version of KRPC to use with MechPeste.
The app will connect and download the 0.5.1 version from the original KRPC's Github.
lbl_stat_ready = Ready.
main_mn_file = File
main_mn_help = Help
diff --git a/src/com/pesterenan/resources/MechPesteBundle_pt.properties b/src/com/pesterenan/resources/MechPesteBundle_pt.properties
index 4cf85c2..9f3ffd3 100644
--- a/src/com/pesterenan/resources/MechPesteBundle_pt.properties
+++ b/src/com/pesterenan/resources/MechPesteBundle_pt.properties
@@ -1,6 +1,7 @@
btn_func_landing = Pouso Autom\u00E1tico
btn_func_liftoff = Decolagem Orbital
-btn_func_maneuvers = Exec. Manobras
+btn_func_create_maneuver = Criar Manobras
+btn_func_exec_maneuver = Exec. Manobras
btn_func_rover = Pilotar Rover
btn_stat_connect = Conectar
installer_dialog_btn_browse = Escolher...
@@ -8,7 +9,7 @@ installer_dialog_btn_cancel = Cancelar
installer_dialog_btn_download = Fazer download e instalar
installer_dialog_pnl_path = Caminho para a Pasta do KSP\:
installer_dialog_title = Instalador do KRPC
-installer_dialog_txt_info = Aqui voc\u00EA poder\u00E1 baixar a vers\u00E3o recomendada do KRPC para usar com o MechPeste.
O aplicativo ir\u00E1 conectar e baixar a vers\u00E3o 0.4.9 do GitHub de nullprofile, que est\u00E1 mantendo essa vers\u00E3o do KRPC.
+installer_dialog_txt_info = Aqui voc\u00ea pode baixar a \u00faltima vers\u00e3o do KRPC para usar com o MechPeste.
O app ir\u00e1 se conectar e baixar a vers\u00e3o 0.5.1 do Github original do KRPC.
lbl_stat_ready = Pronto.
main_mn_file = Arquivo
main_mn_help = Ajuda
diff --git a/src/com/pesterenan/resources/krpc-java-0.4.9.jar b/src/com/pesterenan/resources/krpc-java-0.4.9.jar
deleted file mode 100644
index 9265406..0000000
Binary files a/src/com/pesterenan/resources/krpc-java-0.4.9.jar and /dev/null differ
diff --git a/src/com/pesterenan/resources/krpc-java-0.5.1.jar b/src/com/pesterenan/resources/krpc-java-0.5.1.jar
new file mode 100644
index 0000000..f2348b8
Binary files /dev/null and b/src/com/pesterenan/resources/krpc-java-0.5.1.jar differ
diff --git a/src/com/pesterenan/resources/protobuf-java-3.22.1.jar b/src/com/pesterenan/resources/protobuf-java-3.22.1.jar
new file mode 100644
index 0000000..7685cda
Binary files /dev/null and b/src/com/pesterenan/resources/protobuf-java-3.22.1.jar differ
diff --git a/src/com/pesterenan/resources/protobuf-java-3.5.1.jar b/src/com/pesterenan/resources/protobuf-java-3.5.1.jar
deleted file mode 100644
index 672550d..0000000
Binary files a/src/com/pesterenan/resources/protobuf-java-3.5.1.jar and /dev/null differ
diff --git a/src/com/pesterenan/updater/KrpcInstaller.java b/src/com/pesterenan/updater/KrpcInstaller.java
index a10d6a5..7d548c5 100644
--- a/src/com/pesterenan/updater/KrpcInstaller.java
+++ b/src/com/pesterenan/updater/KrpcInstaller.java
@@ -17,7 +17,7 @@
public class KrpcInstaller {
static final int BUFFER = 2048;
private static final String KRPC_GITHUB_LINK =
- "https://github.com/nullprofile/krpc/releases/download/0.4.9-1.12.1/krpc-0.4.9-1.12.1.zip";
+ "https://github.com/krpc/krpc/releases/download/v0.5.1/krpc-0.5.1.zip";
private static String KSP_FOLDER = null;
public static String getKspFolder() {
@@ -43,7 +43,7 @@ public static void downloadKrpc() {
krpcLink = new URL(KRPC_GITHUB_LINK);
ReadableByteChannel readableByteChannel = Channels.newChannel(krpcLink.openStream());
- FileOutputStream fos = new FileOutputStream(KSP_FOLDER + "\\krpc-0.4.9-1.12.1.zip");
+ FileOutputStream fos = new FileOutputStream(KSP_FOLDER + "\\krpc-0.5.1.zip");
fos.getChannel().transferFrom(readableByteChannel, 0, Long.MAX_VALUE);
fos.close();
@@ -60,7 +60,7 @@ public static void unzipKrpc() {
}
BufferedOutputStream dest;
// zipped input
- FileInputStream fis = new FileInputStream(KSP_FOLDER + "\\krpc-0.4.9-1.12.1.zip");
+ FileInputStream fis = new FileInputStream(KSP_FOLDER + "\\krpc-0.5.1.zip");
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
ZipEntry entry;
while ((entry = zis.getNextEntry()) != null) {
diff --git a/src/com/pesterenan/utils/Modulos.java b/src/com/pesterenan/utils/Modulos.java
index e686230..85222ba 100644
--- a/src/com/pesterenan/utils/Modulos.java
+++ b/src/com/pesterenan/utils/Modulos.java
@@ -2,39 +2,40 @@
public enum Modulos {
- APOASTRO("Apoastro"),
- PERIASTRO("Periastro"),
- EXECUTAR("Executar"),
+ ABRIR_PAINEIS("Abrir Painéis"),
AJUSTAR("Ajustar"),
+ AJUSTE_FINO("Ajuste Fino"),
+ ALTITUDE_SOBREVOO("Altitude Sobrevoo"),
+ APOASTRO("Apoastro"),
+ CIRCULAR("Circular"),
+ CUBICA("Cúbica"),
DIRECAO("Direção"),
- MODULO("Módulo"),
+ EXECUTAR("Executar"),
+ EXPONENCIAL("Exponencial"),
FUNCAO("Função"),
+ INCLINACAO("Inclinação"),
+ MARCADOR_MAPA("Marcador no mapa"),
+ MAX_TWR("Max_TWR"),
+ MODULO_CRIAR_MANOBRAS("CRIAR_MANOBRAS"),
MODULO_DECOLAGEM("LIFTOFF"),
- MODULO_MANOBRAS("MANEUVER"),
+ MODULO_EXEC_MANOBRAS("MANEUVER"),
+ MODULO_POUSO_SOBREVOAR("HOVER"),
MODULO_POUSO("LANDING"),
MODULO_ROVER("ROVER"),
MODULO_TELEMETRIA("TELEMETRY"),
- MODULO_POUSO_SOBREVOAR("HOVER"),
- ALTITUDE_SOBREVOO("Altitude Sobrevoo"),
- INCLINACAO("Inclinação"),
- CIRCULAR("Circular"),
- QUADRATICA("Quadrática"),
- CUBICA("Cúbica"),
- SINUSOIDAL("Sinusoidal"),
- EXPONENCIAL("Exponencial"),
- ROLAGEM("Rolagem"),
- USAR_ESTAGIOS("Usar Estágios"),
- ABRIR_PAINEIS("Abrir Painéis"),
- AJUSTE_FINO("Ajuste Fino"),
- TIPO_ALVO_ROVER("Tipo de Alvo do Rover"),
+ MODULO("Módulo"),
NAVE_ALVO("Nave alvo"),
- MARCADOR_MAPA("Marcador no mapa"),
NOME_MARCADOR("Nome do marcador"),
- VELOCIDADE_MAX("Velocidade Máxima"),
- POUSAR("Pousar nave"),
- MAX_TWR("Max_TWR"),
ORBITA_BAIXA("ÓRBITA BAIXA"),
- SOBREVOO_POS_POUSO("SOBREVOO PÓS POUSO");
+ PERIASTRO("Periastro"),
+ POUSAR("Pousar nave"),
+ QUADRATICA("Quadrática"),
+ ROLAGEM("Rolagem"),
+ SINUSOIDAL("Sinusoidal"),
+ SOBREVOO_POS_POUSO("SOBREVOO PÓS POUSO"),
+ TIPO_ALVO_ROVER("Tipo de Alvo do Rover"),
+ USAR_ESTAGIOS("Usar Estágios"),
+ VELOCIDADE_MAX("Velocidade Máxima");
final String t;
diff --git a/src/com/pesterenan/views/AboutJFrame.java b/src/com/pesterenan/views/AboutJFrame.java
index 7edc533..7c3d2eb 100644
--- a/src/com/pesterenan/views/AboutJFrame.java
+++ b/src/com/pesterenan/views/AboutJFrame.java
@@ -28,7 +28,7 @@ public AboutJFrame() {
@Override
public void initComponents() {
// Labels:
- lblMechpeste = new JLabel("MechPeste - v.0.6");
+ lblMechpeste = new JLabel("MechPeste - v.0.6.2");
lblAboutInfo = new JLabel(
"Esse app foi desenvolvido com o intuito de auxiliar o controle de naves
no game Kerbal Space Program.
"
+ "Não há garantias sobre o controle exato do app, portanto fique atento
"
diff --git a/src/com/pesterenan/views/ChangeVesselDialog.java b/src/com/pesterenan/views/ChangeVesselDialog.java
index 3aacb24..527b9ab 100644
--- a/src/com/pesterenan/views/ChangeVesselDialog.java
+++ b/src/com/pesterenan/views/ChangeVesselDialog.java
@@ -31,7 +31,7 @@ public void initComponents() {
// Buttons:
btnChangeToVessel = new JButton("Mudar para");
- rbClosestVessels = new JRadioButton("Naves próximas (2km)");
+ rbClosestVessels = new JRadioButton("Naves próximas (10km)");
rbOnSameBody = new JRadioButton("No mesmo corpo celeste");
rbAllVessels = new JRadioButton("Todas as naves");
diff --git a/src/com/pesterenan/views/FunctionsAndTelemetryJPanel.java b/src/com/pesterenan/views/FunctionsAndTelemetryJPanel.java
index bce16a3..aadcb06 100644
--- a/src/com/pesterenan/views/FunctionsAndTelemetryJPanel.java
+++ b/src/com/pesterenan/views/FunctionsAndTelemetryJPanel.java
@@ -21,7 +21,7 @@ public class FunctionsAndTelemetryJPanel extends JPanel implements UIMethods {
private static final long serialVersionUID = 0L;
private final Dimension btnFuncDimension = new Dimension(140, 25);
- private JButton btnLiftoff, btnLanding, btnManeuver, btnRover, btnCancel;
+ private JButton btnLiftoff, btnLanding, btnExecManeuver, btnRover, btnCancel, btnCreateManeuver;
private static JLabel lblAltitude, lblSurfaceAlt, lblApoapsis, lblPeriapsis, lblVertSpeed, lblHorzSpeed;
private static JLabel lblAltitudeValue, lblSurfaceAltValue, lblApoapsisValue;
private static JLabel lblPeriapsisValue, lblVertSpeedValue, lblHorzSpeedValue;
@@ -51,7 +51,8 @@ public void initComponents() {
// Buttons:
btnLiftoff = new JButton(Bundle.getString("btn_func_liftoff"));
btnLanding = new JButton(Bundle.getString("btn_func_landing"));
- btnManeuver = new JButton(Bundle.getString("btn_func_maneuvers"));
+ btnCreateManeuver = new JButton(Bundle.getString("btn_func_create_maneuver"));
+ btnExecManeuver = new JButton(Bundle.getString("btn_func_exec_maneuver"));
btnRover = new JButton(Bundle.getString("btn_func_rover"));
btnCancel = new JButton(Bundle.getString("pnl_tel_btn_cancel"));
}
@@ -75,10 +76,15 @@ public void setupComponents() {
btnLiftoff.setActionCommand(Modulos.MODULO_DECOLAGEM.get());
btnLiftoff.setMaximumSize(btnFuncDimension);
btnLiftoff.setPreferredSize(btnFuncDimension);
- btnManeuver.addActionListener(this::changeFunctionPanel);
- btnManeuver.setActionCommand(Modulos.MODULO_MANOBRAS.get());
- btnManeuver.setMaximumSize(btnFuncDimension);
- btnManeuver.setPreferredSize(btnFuncDimension);
+ btnCreateManeuver.addActionListener(this::changeFunctionPanel);
+ btnCreateManeuver.setActionCommand(Modulos.MODULO_CRIAR_MANOBRAS.get());
+ btnCreateManeuver.setMaximumSize(btnFuncDimension);
+ btnCreateManeuver.setPreferredSize(btnFuncDimension);
+ btnCreateManeuver.setEnabled(false);
+ btnExecManeuver.addActionListener(this::changeFunctionPanel);
+ btnExecManeuver.setActionCommand(Modulos.MODULO_EXEC_MANOBRAS.get());
+ btnExecManeuver.setMaximumSize(btnFuncDimension);
+ btnExecManeuver.setPreferredSize(btnFuncDimension);
btnRover.addActionListener(this::changeFunctionPanel);
btnRover.setActionCommand(Modulos.MODULO_ROVER.get());
btnRover.setMaximumSize(btnFuncDimension);
@@ -93,8 +99,10 @@ public void layoutComponents() {
pnlFunctionControls.add(MainGui.createMarginComponent(0, 4));
pnlFunctionControls.add(btnLiftoff);
pnlFunctionControls.add(btnLanding);
- pnlFunctionControls.add(btnManeuver);
pnlFunctionControls.add(btnRover);
+ pnlFunctionControls.add(MainGui.createMarginComponent(0, 20));
+ pnlFunctionControls.add(btnCreateManeuver);
+ pnlFunctionControls.add(btnExecManeuver);
pnlFunctionControls.add(Box.createVerticalGlue());
JPanel pnlLeftPanel = new JPanel();
@@ -159,7 +167,7 @@ public void layoutComponents() {
}
private void changeFunctionPanel(ActionEvent e) {
- MainGui.getCardJPanels().firePropertyChange(e.getActionCommand(), false, true);
+ MainGui.changeToPage(e);
}
public static void updateTelemetry(Map telemetryData) {
diff --git a/src/com/pesterenan/views/LiftoffJPanel.java b/src/com/pesterenan/views/LiftoffJPanel.java
index 8042a2b..7c5e488 100644
--- a/src/com/pesterenan/views/LiftoffJPanel.java
+++ b/src/com/pesterenan/views/LiftoffJPanel.java
@@ -46,7 +46,7 @@ public void initComponents() {
txfFinalApoapsis = new JTextField("80000");
txfFinalApoapsis.setToolTipText(Bundle.getString("pnl_lift_txf_final_apo_tooltip"));
txfHeading = new JTextField("90");
- txfLimitTWR = new JTextField("1.5");
+ txfLimitTWR = new JTextField("2.2");
// Buttons:
btnLiftoff = new JButton(Bundle.getString("pnl_lift_btn_liftoff"));
@@ -209,6 +209,7 @@ private void handleLiftoff(ActionEvent e) {
commands.put(Modulos.USAR_ESTAGIOS.get(), String.valueOf(chkDecoupleStages.isSelected()));
commands.put(Modulos.ABRIR_PAINEIS.get(), String.valueOf(chkOpenPanels.isSelected()));
MechPeste.newInstance().startModule(commands);
+ MainGui.backToTelemetry(e);
}
}
}
diff --git a/src/com/pesterenan/views/MainGui.java b/src/com/pesterenan/views/MainGui.java
index 7ceea6f..04c903a 100644
--- a/src/com/pesterenan/views/MainGui.java
+++ b/src/com/pesterenan/views/MainGui.java
@@ -12,105 +12,120 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
-public class MainGui extends JFrame implements ActionListener, PropertyChangeListener {
+public class MainGui extends JFrame implements ActionListener, UIMethods {
+
private static final long serialVersionUID = 1L;
+
private final Dimension APP_DIMENSION = new Dimension(480, 300);
public static final Dimension PNL_DIMENSION = new Dimension(464, 216);
public static final Dimension BTN_DIMENSION = new Dimension(110, 25);
- public static final EmptyBorder MARGIN_BORDER_10_PX_LR = new EmptyBorder(0,10,0,10);
+ public static final EmptyBorder MARGIN_BORDER_10_PX_LR = new EmptyBorder(0, 10, 0, 10);
private static MainGui mainGui = null;
private static StatusJPanel pnlStatus;
private static FunctionsAndTelemetryJPanel pnlFunctionsAndTelemetry;
private final JPanel ctpMainGui = new JPanel();
private final static JPanel cardJPanels = new JPanel();
private JMenuBar menuBar;
- private JMenu mnFile;
- private JMenu mnOptions;
- private JMenu mnHelp;
- private JMenuItem mntmInstallKrpc;
- private JMenuItem mntmExit;
- private JMenuItem mntmChangeVessels;
- private JMenuItem mntmAbout;
+ private JMenu mnFile, mnOptions, mnHelp;
+ private JMenuItem mntmInstallKrpc, mntmExit, mntmChangeVessels, mntmAbout;
+
+ private final static CardLayout cardLayout = new CardLayout(0, 0);
private LiftoffJPanel pnlLiftoff;
-
- private final CardLayout cardLayout = new CardLayout(0, 0);
private LandingJPanel pnlLanding;
private ManeuverJPanel pnlManeuver;
private RoverJPanel pnlRover;
private MainGui() {
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- initComponents();
- } catch (Throwable e) {
- e.printStackTrace();
- }
+ initComponents();
+ setupComponents();
+ layoutComponents();
}
- public static void newInstance() {
+ public static MainGui newInstance() {
if (mainGui == null) {
mainGui = new MainGui();
}
+ return mainGui;
}
- private void initComponents() {
- setAlwaysOnTop(true);
- setTitle("MechPeste - Pesterenan"); //$NON-NLS-1$
- setVisible(true);
- setResizable(false);
- setLocation(100, 100);
- setSize(APP_DIMENSION);
-
+ @Override
+ public void initComponents() {
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (Exception ignored) {
+ }
+
+ // Menu bar
menuBar = new JMenuBar();
- setJMenuBar(menuBar);
-
- mnFile = new JMenu(Bundle.getString("main_mn_file")); //$NON-NLS-1$
- menuBar.add(mnFile);
-
- mnOptions = new JMenu(Bundle.getString("main_mn_options")); //$NON-NLS-1$
- menuBar.add(mnOptions);
+ // Menus
+ mnFile = new JMenu(Bundle.getString("main_mn_file"));
+ mnOptions = new JMenu(Bundle.getString("main_mn_options"));
+ mnHelp = new JMenu(Bundle.getString("main_mn_help"));
+
+ // Menu Items
mntmInstallKrpc = new JMenuItem(Bundle.getString("main_mntm_install_krpc"));
- mntmInstallKrpc.addActionListener(this);
- mnFile.add(mntmInstallKrpc);
-
mntmChangeVessels = new JMenuItem(Bundle.getString("main_mntm_change_vessels"));
- mntmChangeVessels.addActionListener(this);
- mnOptions.add(mntmChangeVessels);
-
- mnFile.add(new JSeparator());
- mntmExit = new JMenuItem(Bundle.getString("main_mntm_exit")); //$NON-NLS-1$
- mntmExit.addActionListener(this);
- mnFile.add(mntmExit);
-
- mnHelp = new JMenu(Bundle.getString("main_mn_help")); //$NON-NLS-1$
- menuBar.add(mnHelp);
-
- mntmAbout = new JMenuItem(Bundle.getString("main_mntm_about")); //$NON-NLS-1$
- mntmAbout.addActionListener(this);
- mnHelp.add(mntmAbout);
- setContentPane(ctpMainGui);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ mntmExit = new JMenuItem(Bundle.getString("main_mntm_exit"));
+ mntmAbout = new JMenuItem(Bundle.getString("main_mntm_about"));
+ // Panels
pnlFunctionsAndTelemetry = new FunctionsAndTelemetryJPanel();
pnlLiftoff = new LiftoffJPanel();
pnlLanding = new LandingJPanel();
pnlManeuver = new ManeuverJPanel();
pnlRover = new RoverJPanel();
pnlStatus = new StatusJPanel();
+ }
- cardJPanels.setLayout(cardLayout);
+ @Override
+ public void setupComponents() {
+ // Main Panel setup:
+ setAlwaysOnTop(true);
+ setTitle("MechPeste - Pesterenan");
+ setJMenuBar(menuBar);
+ setResizable(false);
+ setLocation(100, 100);
+ setContentPane(ctpMainGui);
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+ // Setting-up components:
+ mntmAbout.addActionListener(this);
+ mntmChangeVessels.addActionListener(this);
+ mntmExit.addActionListener(this);
+ mntmInstallKrpc.addActionListener(this);
+
+ cardJPanels.setPreferredSize(PNL_DIMENSION);
cardJPanels.setSize(PNL_DIMENSION);
+ }
+
+ @Override
+ public void layoutComponents() {
+ // Main Panel layout:
+ setPreferredSize(APP_DIMENSION);
+ setSize(APP_DIMENSION);
+ setVisible(true);
+
+ // Laying out components:
+ ctpMainGui.setLayout(new BorderLayout());
+ ctpMainGui.add(cardJPanels, BorderLayout.CENTER);
+ ctpMainGui.add(pnlStatus, BorderLayout.SOUTH);
+
+ mnFile.add(mntmInstallKrpc);
+ mnFile.add(new JSeparator());
+ mnFile.add(mntmExit);
+ mnOptions.add(mntmChangeVessels);
+ mnHelp.add(mntmAbout);
+ menuBar.add(mnFile);
+ menuBar.add(mnOptions);
+ menuBar.add(mnHelp);
+
+ cardJPanels.setLayout(cardLayout);
cardJPanels.add(pnlFunctionsAndTelemetry, Modulos.MODULO_TELEMETRIA.get());
cardJPanels.add(pnlLiftoff, Modulos.MODULO_DECOLAGEM.get());
cardJPanels.add(pnlLanding, Modulos.MODULO_POUSO.get());
- cardJPanels.add(pnlManeuver, Modulos.MODULO_MANOBRAS.get());
+ cardJPanels.add(pnlManeuver, Modulos.MODULO_EXEC_MANOBRAS.get());
cardJPanels.add(pnlRover, Modulos.MODULO_ROVER.get());
- cardJPanels.addPropertyChangeListener(this);
-
- ctpMainGui.setLayout(new BorderLayout(0, 0));
- ctpMainGui.add(cardJPanels, BorderLayout.CENTER);
- ctpMainGui.add(pnlStatus, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e) {
@@ -140,13 +155,6 @@ protected void handleMntmExitActionPerformed(ActionEvent e) {
System.exit(0);
}
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (evt.getSource() == cardJPanels) {
- handlePnlTelemetriaPropertyChange(evt);
- }
- }
-
public static Rectangle centerDialogOnScreen() {
Dimension SCREEN_DIMENSIONS = Toolkit.getDefaultToolkit().getScreenSize();
Dimension DIALOG_DIMENSIONS = new Dimension(400, 240);
@@ -157,30 +165,16 @@ public static Rectangle centerDialogOnScreen() {
return new Rectangle(x, y, w, h);
}
- protected void handlePnlTelemetriaPropertyChange(PropertyChangeEvent evt) {
- if (evt.getPropertyName().equals(Modulos.MODULO_DECOLAGEM.get())) {
- cardLayout.show(cardJPanels, Modulos.MODULO_DECOLAGEM.get());
- }
- if (evt.getPropertyName().equals(Modulos.MODULO_POUSO.get())) {
- cardLayout.show(cardJPanels, Modulos.MODULO_POUSO.get());
- }
- if (evt.getPropertyName().equals(Modulos.MODULO_MANOBRAS.get())) {
- cardLayout.show(cardJPanels, Modulos.MODULO_MANOBRAS.get());
- }
- if (evt.getPropertyName().equals(Modulos.MODULO_ROVER.get())) {
- cardLayout.show(cardJPanels, Modulos.MODULO_ROVER.get());
- }
- if (evt.getPropertyName().equals(Modulos.MODULO_TELEMETRIA.get())) {
- cardLayout.show(cardJPanels, Modulos.MODULO_TELEMETRIA.get());
- }
- }
-
public static JPanel getCardJPanels() {
return cardJPanels;
}
+ public static void changeToPage(ActionEvent e) {
+ cardLayout.show(cardJPanels, e.getActionCommand());
+ }
+
public static void backToTelemetry(ActionEvent e) {
- cardJPanels.firePropertyChange(Modulos.MODULO_TELEMETRIA.get(), false, true);
+ cardLayout.show(cardJPanels, Modulos.MODULO_TELEMETRIA.get());
}
protected void handleMntmAboutActionPerformed(ActionEvent e) {
@@ -188,7 +182,7 @@ protected void handleMntmAboutActionPerformed(ActionEvent e) {
}
public static Component createMarginComponent(int width, int height) {
- Component marginComp = Box.createRigidArea(new Dimension(width,height));
+ Component marginComp = Box.createRigidArea(new Dimension(width, height));
return marginComp;
}
}
diff --git a/src/com/pesterenan/views/ManeuverJPanel.java b/src/com/pesterenan/views/ManeuverJPanel.java
index d0e29ca..c0b80e9 100644
--- a/src/com/pesterenan/views/ManeuverJPanel.java
+++ b/src/com/pesterenan/views/ManeuverJPanel.java
@@ -171,7 +171,7 @@ public void actionPerformed(ActionEvent e) {
protected void handleManeuverFunction(String maneuverFunction) {
Map commands = new HashMap<>();
- commands.put(Modulos.MODULO.get(), Modulos.MODULO_MANOBRAS.get());
+ commands.put(Modulos.MODULO.get(), Modulos.MODULO_EXEC_MANOBRAS.get());
commands.put(Modulos.FUNCAO.get(), maneuverFunction);
commands.put(Modulos.AJUSTE_FINO.get(), String.valueOf(chkFineAdjusment.isSelected()));
MechPeste.newInstance().startModule(commands);