Fix flight config buttons still enabled when no motor mount
This commit is contained in:
		
							parent
							
								
									8b91342f55
								
							
						
					
					
						commit
						b3a08555fa
					
				@ -21,6 +21,8 @@ import net.sf.openrocket.document.OpenRocketDocument;
 | 
				
			|||||||
import net.sf.openrocket.document.Simulation;
 | 
					import net.sf.openrocket.document.Simulation;
 | 
				
			||||||
import net.sf.openrocket.gui.dialogs.flightconfiguration.RenameConfigDialog;
 | 
					import net.sf.openrocket.gui.dialogs.flightconfiguration.RenameConfigDialog;
 | 
				
			||||||
import net.sf.openrocket.gui.main.BasicFrame;
 | 
					import net.sf.openrocket.gui.main.BasicFrame;
 | 
				
			||||||
 | 
					import net.sf.openrocket.gui.main.RocketActions;
 | 
				
			||||||
 | 
					import net.sf.openrocket.gui.util.Icons;
 | 
				
			||||||
import net.sf.openrocket.l10n.Translator;
 | 
					import net.sf.openrocket.l10n.Translator;
 | 
				
			||||||
import net.sf.openrocket.rocketcomponent.ComponentChangeEvent;
 | 
					import net.sf.openrocket.rocketcomponent.ComponentChangeEvent;
 | 
				
			||||||
import net.sf.openrocket.rocketcomponent.FlightConfigurableComponent;
 | 
					import net.sf.openrocket.rocketcomponent.FlightConfigurableComponent;
 | 
				
			||||||
@ -95,19 +97,23 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe
 | 
				
			|||||||
		tabs.add(trans.get("edtmotorconfdlg.lbl.Stagetab"), separationConfigurationPanel);
 | 
							tabs.add(trans.get("edtmotorconfdlg.lbl.Stagetab"), separationConfigurationPanel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//// New configuration
 | 
							//// New configuration
 | 
				
			||||||
		newConfButton = new SelectColorButton(newConfigAction);
 | 
							newConfButton = new SelectColorButton();
 | 
				
			||||||
 | 
							RocketActions.tieActionToButton(newConfButton, newConfigAction);
 | 
				
			||||||
		this.add(newConfButton,"skip 1,gapright para");
 | 
							this.add(newConfButton,"skip 1,gapright para");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//// Rename configuration
 | 
							//// Rename configuration
 | 
				
			||||||
		renameConfButton = new SelectColorButton(renameConfigAction);
 | 
							renameConfButton = new SelectColorButton();
 | 
				
			||||||
 | 
							RocketActions.tieActionToButton(renameConfButton, renameConfigAction);
 | 
				
			||||||
		this.add(renameConfButton,"gapright para");
 | 
							this.add(renameConfButton,"gapright para");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//// Remove configuration
 | 
							//// Remove configuration
 | 
				
			||||||
		removeConfButton = new SelectColorButton(removeConfigAction);
 | 
							removeConfButton = new SelectColorButton();
 | 
				
			||||||
 | 
							RocketActions.tieActionToButton(removeConfButton, removeConfigAction);
 | 
				
			||||||
		this.add(removeConfButton,"gapright para");
 | 
							this.add(removeConfButton,"gapright para");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//// Duplicate configuration
 | 
							//// Duplicate configuration
 | 
				
			||||||
		duplicateConfButton = new SelectColorButton(duplicateConfigAction);
 | 
							duplicateConfButton = new SelectColorButton();
 | 
				
			||||||
 | 
							RocketActions.tieActionToButton(duplicateConfButton, duplicateConfigAction);
 | 
				
			||||||
		this.add(duplicateConfButton, "wrap");
 | 
							this.add(duplicateConfButton, "wrap");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		tabs.addChangeListener(new ChangeListener() {
 | 
							tabs.addChangeListener(new ChangeListener() {
 | 
				
			||||||
@ -261,9 +267,10 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe
 | 
				
			|||||||
	private void updateButtonState() {
 | 
						private void updateButtonState() {
 | 
				
			||||||
		FlightConfigurationId currentId = rocket.getSelectedConfiguration().getFlightConfigurationID();
 | 
							FlightConfigurationId currentId = rocket.getSelectedConfiguration().getFlightConfigurationID();
 | 
				
			||||||
		// Enable the remove/rename/duplicate buttons only when a configuration is selected.
 | 
							// Enable the remove/rename/duplicate buttons only when a configuration is selected.
 | 
				
			||||||
		removeConfButton.setEnabled(currentId.isValid());
 | 
							boolean enabled = currentId.isValid() && !currentId.isDefaultId();
 | 
				
			||||||
		renameConfButton.setEnabled(currentId.isValid());
 | 
							removeConfButton.setEnabled(enabled);
 | 
				
			||||||
		duplicateConfButton.setEnabled(currentId.isValid());
 | 
							renameConfButton.setEnabled(enabled);
 | 
				
			||||||
 | 
							duplicateConfButton.setEnabled(enabled);
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		// Count the number of motor mounts
 | 
							// Count the number of motor mounts
 | 
				
			||||||
		int motorMountCount = rocket.accept(new ListMotorMounts()).size();
 | 
							int motorMountCount = rocket.accept(new ListMotorMounts()).size();
 | 
				
			||||||
@ -326,6 +333,7 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe
 | 
				
			|||||||
	private class NewConfigAction extends AbstractAction {
 | 
						private class NewConfigAction extends AbstractAction {
 | 
				
			||||||
		public NewConfigAction() {
 | 
							public NewConfigAction() {
 | 
				
			||||||
			putValue(NAME, trans.get("edtmotorconfdlg.but.Newconfiguration"));
 | 
								putValue(NAME, trans.get("edtmotorconfdlg.but.Newconfiguration"));
 | 
				
			||||||
 | 
								putValue(LARGE_ICON_KEY, Icons.FILE_NEW);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		@Override
 | 
							@Override
 | 
				
			||||||
@ -337,6 +345,7 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe
 | 
				
			|||||||
	private class RenameConfigAction extends AbstractAction {
 | 
						private class RenameConfigAction extends AbstractAction {
 | 
				
			||||||
		public RenameConfigAction() {
 | 
							public RenameConfigAction() {
 | 
				
			||||||
			putValue(NAME, trans.get("edtmotorconfdlg.but.Renameconfiguration"));
 | 
								putValue(NAME, trans.get("edtmotorconfdlg.but.Renameconfiguration"));
 | 
				
			||||||
 | 
								putValue(SMALL_ICON, Icons.EDIT_RENAME);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		@Override
 | 
							@Override
 | 
				
			||||||
@ -348,6 +357,7 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe
 | 
				
			|||||||
	private class RemoveConfigAction extends AbstractAction {
 | 
						private class RemoveConfigAction extends AbstractAction {
 | 
				
			||||||
		public RemoveConfigAction() {
 | 
							public RemoveConfigAction() {
 | 
				
			||||||
			putValue(NAME, trans.get("edtmotorconfdlg.but.Removeconfiguration"));
 | 
								putValue(NAME, trans.get("edtmotorconfdlg.but.Removeconfiguration"));
 | 
				
			||||||
 | 
								putValue(SMALL_ICON, Icons.EDIT_DELETE);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		@Override
 | 
							@Override
 | 
				
			||||||
@ -359,6 +369,7 @@ public class FlightConfigurationPanel extends JPanel implements StateChangeListe
 | 
				
			|||||||
	private class DuplicateConfigAction extends AbstractAction {
 | 
						private class DuplicateConfigAction extends AbstractAction {
 | 
				
			||||||
		public DuplicateConfigAction() {
 | 
							public DuplicateConfigAction() {
 | 
				
			||||||
			putValue(NAME, trans.get("edtmotorconfdlg.but.Duplicateconfiguration"));
 | 
								putValue(NAME, trans.get("edtmotorconfdlg.but.Duplicateconfiguration"));
 | 
				
			||||||
 | 
								putValue(SMALL_ICON, Icons.EDIT_DUPLICATE);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		@Override
 | 
							@Override
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user