Changes to support integrated into main application.
This commit is contained in:
parent
efb4952333
commit
391d02dc66
@ -1,15 +1,19 @@
|
|||||||
package net.sf.openrocket.gui.preset;
|
package net.sf.openrocket.gui.preset;
|
||||||
|
|
||||||
import java.awt.Window;
|
import net.miginfocom.swing.MigLayout;
|
||||||
import java.awt.event.ActionEvent;
|
import net.sf.openrocket.gui.util.FileHelper;
|
||||||
import java.awt.event.ActionListener;
|
import net.sf.openrocket.gui.util.Icons;
|
||||||
import java.awt.event.MouseAdapter;
|
import net.sf.openrocket.gui.util.SwingPreferences;
|
||||||
import java.awt.event.MouseEvent;
|
import net.sf.openrocket.l10n.ResourceBundleTranslator;
|
||||||
import java.io.File;
|
import net.sf.openrocket.l10n.Translator;
|
||||||
import java.io.FileReader;
|
import net.sf.openrocket.logging.LogHelper;
|
||||||
import java.io.IOException;
|
import net.sf.openrocket.material.Material;
|
||||||
import java.util.ArrayList;
|
import net.sf.openrocket.preset.ComponentPreset;
|
||||||
import java.util.List;
|
import net.sf.openrocket.preset.loader.MaterialHolder;
|
||||||
|
import net.sf.openrocket.preset.loader.RocksimComponentFileTranslator;
|
||||||
|
import net.sf.openrocket.preset.xml.OpenRocketComponentDTO;
|
||||||
|
import net.sf.openrocket.preset.xml.OpenRocketComponentSaver;
|
||||||
|
import net.sf.openrocket.startup.Application;
|
||||||
|
|
||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
@ -29,20 +33,16 @@ import javax.swing.JTable;
|
|||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.table.DefaultTableModel;
|
import javax.swing.table.DefaultTableModel;
|
||||||
import javax.xml.bind.JAXBException;
|
import javax.xml.bind.JAXBException;
|
||||||
|
import java.awt.Window;
|
||||||
import net.miginfocom.swing.MigLayout;
|
import java.awt.event.ActionEvent;
|
||||||
import net.sf.openrocket.gui.util.FileHelper;
|
import java.awt.event.ActionListener;
|
||||||
import net.sf.openrocket.gui.util.Icons;
|
import java.awt.event.MouseAdapter;
|
||||||
import net.sf.openrocket.gui.util.SwingPreferences;
|
import java.awt.event.MouseEvent;
|
||||||
import net.sf.openrocket.l10n.ResourceBundleTranslator;
|
import java.io.File;
|
||||||
import net.sf.openrocket.logging.LogHelper;
|
import java.io.FileReader;
|
||||||
import net.sf.openrocket.material.Material;
|
import java.io.IOException;
|
||||||
import net.sf.openrocket.preset.ComponentPreset;
|
import java.util.ArrayList;
|
||||||
import net.sf.openrocket.preset.loader.MaterialHolder;
|
import java.util.List;
|
||||||
import net.sf.openrocket.preset.loader.RocksimComponentFileTranslator;
|
|
||||||
import net.sf.openrocket.preset.xml.OpenRocketComponentDTO;
|
|
||||||
import net.sf.openrocket.preset.xml.OpenRocketComponentSaver;
|
|
||||||
import net.sf.openrocket.startup.Application;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A UI for editing component presets. Currently this is a standalone application - run the main within this class.
|
* A UI for editing component presets. Currently this is a standalone application - run the main within this class.
|
||||||
@ -58,7 +58,7 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
|||||||
/**
|
/**
|
||||||
* The I18N translator.
|
* The I18N translator.
|
||||||
*/
|
*/
|
||||||
private static ResourceBundleTranslator trans = null;
|
private static Translator trans = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The table of presets.
|
* The table of presets.
|
||||||
@ -70,16 +70,10 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
|||||||
*/
|
*/
|
||||||
private DataTableModel model;
|
private DataTableModel model;
|
||||||
|
|
||||||
/**
|
|
||||||
* Flag that indicates if an existing Preset is currently being edited.
|
|
||||||
*/
|
|
||||||
// private boolean editingSelected = false;
|
|
||||||
|
|
||||||
private final OpenedFileContext editContext = new OpenedFileContext();
|
private final OpenedFileContext editContext = new OpenedFileContext();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
trans = new ResourceBundleTranslator("l10n.messages");
|
trans = Application.getTranslator();
|
||||||
net.sf.openrocket.startup.Application.setBaseTranslator(trans);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -115,21 +109,24 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
|||||||
table.addMouseListener(new MouseAdapter() {
|
table.addMouseListener(new MouseAdapter() {
|
||||||
public void mouseClicked(MouseEvent e) {
|
public void mouseClicked(MouseEvent e) {
|
||||||
JTable target = (JTable) e.getSource();
|
JTable target = (JTable) e.getSource();
|
||||||
int selectedColumn = table.getColumnModel().getColumnIndexAtX( target.getSelectedColumn() );
|
int selectedColumn = table.getColumnModel().getColumnIndexAtX(target.getSelectedColumn());
|
||||||
int selectedRow = table.getRowSorter().convertRowIndexToModel( target.getSelectedRow() );
|
final int targetSelectedRow = target.getSelectedRow();
|
||||||
if (selectedColumn == 4) {
|
if (targetSelectedRow > -1 && targetSelectedRow < model.getRowCount()) {
|
||||||
if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(ComponentPresetEditor.this,
|
int selectedRow = table.getRowSorter().convertRowIndexToModel(targetSelectedRow);
|
||||||
"Do you want to delete this preset?",
|
if (selectedColumn == 4) {
|
||||||
"Confirm Delete", JOptionPane.YES_OPTION,
|
if (JOptionPane.YES_OPTION == JOptionPane.showConfirmDialog(ComponentPresetEditor.this,
|
||||||
JOptionPane.QUESTION_MESSAGE)) {
|
"Do you want to delete this preset?",
|
||||||
model.removeRow(selectedRow);
|
"Confirm Delete", JOptionPane.YES_OPTION,
|
||||||
|
JOptionPane.QUESTION_MESSAGE)) {
|
||||||
|
model.removeRow(selectedRow);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
else {
|
||||||
else {
|
if (e.getClickCount() == 2) {
|
||||||
if (e.getClickCount() == 2) {
|
editContext.setEditingSelected(true);
|
||||||
editContext.setEditingSelected(true);
|
new PresetEditorDialog(ComponentPresetEditor.this,
|
||||||
new PresetEditorDialog(ComponentPresetEditor.this,
|
(ComponentPreset) model.getAssociatedObject(selectedRow), editContext.getMaterialsLoaded()).setVisible(true);
|
||||||
(ComponentPreset) model.getAssociatedObject(selectedRow), editContext.getMaterialsLoaded()).setVisible(true);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -204,8 +201,8 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
|||||||
mnFile.add(mntmExit);
|
mnFile.add(mntmExit);
|
||||||
mntmExit.addActionListener(new ActionListener() {
|
mntmExit.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent arg0) {
|
public void actionPerformed(ActionEvent arg0) {
|
||||||
Window w = SwingUtilities.getWindowAncestor(ComponentPresetEditor.this);
|
Window w = SwingUtilities.getWindowAncestor(ComponentPresetEditor.this);
|
||||||
w.dispose();
|
w.dispose();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -235,7 +232,7 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
|||||||
//Is this a new preset?
|
//Is this a new preset?
|
||||||
String description = preset.has(ComponentPreset.DESCRIPTION) ? preset.get(ComponentPreset.DESCRIPTION) :
|
String description = preset.has(ComponentPreset.DESCRIPTION) ? preset.get(ComponentPreset.DESCRIPTION) :
|
||||||
preset.getPartNo();
|
preset.getPartNo();
|
||||||
if (!editContext.isEditingSelected()|| table.getSelectedRow() == -1) {
|
if (!editContext.isEditingSelected() || table.getSelectedRow() == -1) {
|
||||||
model.addRow(new Object[]{preset.getManufacturer().getDisplayName(), preset.getType().name(),
|
model.addRow(new Object[]{preset.getManufacturer().getDisplayName(), preset.getType().name(),
|
||||||
preset.getPartNo(), description, Icons.EDIT_DELETE}, preset);
|
preset.getPartNo(), description, Icons.EDIT_DELETE}, preset);
|
||||||
}
|
}
|
||||||
@ -257,6 +254,9 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
|||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
try {
|
try {
|
||||||
|
trans = new ResourceBundleTranslator("l10n.messages");
|
||||||
|
net.sf.openrocket.startup.Application.setBaseTranslator(trans);
|
||||||
|
|
||||||
Application.setPreferences(new SwingPreferences());
|
Application.setPreferences(new SwingPreferences());
|
||||||
JFrame dialog = new JFrame();
|
JFrame dialog = new JFrame();
|
||||||
dialog.getContentPane().add(new ComponentPresetEditor(dialog));
|
dialog.getContentPane().add(new ComponentPresetEditor(dialog));
|
||||||
@ -355,9 +355,9 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
|||||||
List<ComponentPreset> presets = null;
|
List<ComponentPreset> presets = null;
|
||||||
|
|
||||||
if (file.getName().toLowerCase().endsWith(".orc")) {
|
if (file.getName().toLowerCase().endsWith(".orc")) {
|
||||||
OpenRocketComponentDTO fileContents = new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent(new FileReader(file));
|
OpenRocketComponentDTO fileContents = new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent(new FileReader(file));
|
||||||
editContext.setMaterialsLoaded( new MaterialHolder(fileContents.asMaterialList()) );
|
editContext.setMaterialsLoaded(new MaterialHolder(fileContents.asMaterialList()));
|
||||||
presets = fileContents.asComponentPresets();
|
presets = fileContents.asComponentPresets();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (file.getName().toLowerCase().endsWith(".csv")) {
|
if (file.getName().toLowerCase().endsWith(".csv")) {
|
||||||
@ -429,8 +429,6 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser.getCurrentDirectory());
|
|
||||||
|
|
||||||
file = FileHelper.forceExtension(file, "orc");
|
file = FileHelper.forceExtension(file, "orc");
|
||||||
|
|
||||||
MaterialHolder materials = new MaterialHolder();
|
MaterialHolder materials = new MaterialHolder();
|
||||||
@ -439,13 +437,17 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
|||||||
for (int x = 0; x < model.getRowCount(); x++) {
|
for (int x = 0; x < model.getRowCount(); x++) {
|
||||||
ComponentPreset preset = (ComponentPreset) model.getAssociatedObject(x);
|
ComponentPreset preset = (ComponentPreset) model.getAssociatedObject(x);
|
||||||
// If we don't have a material already defined for saving...
|
// If we don't have a material already defined for saving...
|
||||||
if ( materials.getMaterial(preset.get(ComponentPreset.MATERIAL)) == null ) {
|
if (materials.getMaterial(preset.get(ComponentPreset.MATERIAL)) == null) {
|
||||||
// Check if we loaded a material with this name.
|
// Check if we loaded a material with this name.
|
||||||
Material m = editContext.getMaterialsLoaded().getMaterial(preset.get(ComponentPreset.MATERIAL));
|
Material m = null;
|
||||||
// If there was no material loaded with that name, use the component's material.
|
if (editContext.getMaterialsLoaded() != null) {
|
||||||
if ( m == null ) {
|
m = editContext.getMaterialsLoaded().getMaterial(preset.get
|
||||||
m = preset.get(ComponentPreset.MATERIAL);
|
(ComponentPreset.MATERIAL));
|
||||||
}
|
}
|
||||||
|
// If there was no material loaded with that name, use the component's material.
|
||||||
|
if (m == null) {
|
||||||
|
m = preset.get(ComponentPreset.MATERIAL);
|
||||||
|
}
|
||||||
materials.put(m);
|
materials.put(m);
|
||||||
}
|
}
|
||||||
presets.add(preset);
|
presets.add(preset);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user