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);