git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@958
180e2498-e6e9-4542-8430-
84ac67f01cd8
\r
import net.sf.openrocket.material.Material;\r
import net.sf.openrocket.preset.ComponentPreset;\r
\r
import net.sf.openrocket.material.Material;\r
import net.sf.openrocket.preset.ComponentPreset;\r
+import net.sf.openrocket.preset.ComponentPreset.Type;\r
\r
public class PreferencesAdapter extends net.sf.openrocket.startup.Preferences {\r
\r
\r
public class PreferencesAdapter extends net.sf.openrocket.startup.Preferences {\r
\r
- public void setComponentFavorite(ComponentPreset preset, boolean favorite) {\r
- \r
+ public void setComponentFavorite(ComponentPreset preset, Type type, boolean favorite) {\r
- public Set<String> getComponentFavorites() {\r
+ public Set<String> getComponentFavorites(Type type) {\r
return Collections.<String>emptySet();\r
}\r
\r
return Collections.<String>emptySet();\r
}\r
\r
public List<ComponentPreset> listForTypes( List<ComponentPreset.Type> types );
public List<ComponentPreset> listForTypes( List<ComponentPreset.Type> types );
- public void setFavorite( ComponentPreset preset, boolean favorite );
+ public void setFavorite( ComponentPreset preset, ComponentPreset.Type type, boolean favorite );
public List<ComponentPreset> find( String manufacturer, String partNo );
public List<ComponentPreset> find( String manufacturer, String partNo );
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import net.sf.openrocket.logging.LogHelper;
import net.sf.openrocket.preset.ComponentPreset;
import net.sf.openrocket.logging.LogHelper;
import net.sf.openrocket.preset.ComponentPreset;
List<ComponentPreset> result = new ArrayList<ComponentPreset>(list.size()/6);
List<ComponentPreset> result = new ArrayList<ComponentPreset>(list.size()/6);
+ Set<String> favorites = Application.getPreferences().getComponentFavorites(type);
+
for( ComponentPreset preset : list ) {
for( ComponentPreset preset : list ) {
- if ( preset.isFavorite() && preset.get(ComponentPreset.TYPE).equals(type) ) {
+ if ( preset.get(ComponentPreset.TYPE).equals(type) && favorites.contains(preset.preferenceKey())) {
- public void setFavorite( ComponentPreset preset, boolean favorite ) {
+ public void setFavorite( ComponentPreset preset, ComponentPreset.Type type, boolean favorite ) {
- preset.setFavorite(favorite);
- Application.getPreferences().setComponentFavorite( preset, favorite );
+ Application.getPreferences().setComponentFavorite( preset, type, favorite );
this.fireAddEvent(preset);
}
this.fireAddEvent(preset);
}
int foreDiameterColumnIndex = -1;
private List<ComponentPreset> presets;
int foreDiameterColumnIndex = -1;
private List<ComponentPreset> presets;
+ private ComponentPreset.Type presetType;
private boolean okClicked = false;
private boolean okClicked = false;
public ComponentPresetChooserDialog(Window owner, RocketComponent component) {
super(owner, trans.get("title"), Dialog.ModalityType.APPLICATION_MODAL);
this.component = component;
public ComponentPresetChooserDialog(Window owner, RocketComponent component) {
super(owner, trans.get("title"), Dialog.ModalityType.APPLICATION_MODAL);
this.component = component;
+ this.presetType = component.getPresetType();
this.presets = Application.getComponentPresetDao().listForType(component.getPresetType());
List<TypedKey<?>> displayedColumnKeys = Arrays.asList(component.getPresetType().getDisplayedColumns());
this.presets = Application.getComponentPresetDao().listForType(component.getPresetType());
List<TypedKey<?>> displayedColumnKeys = Arrays.asList(component.getPresetType().getDisplayedColumns());
panel.add(getFilterCheckboxes(), "wrap para");
panel.add(getFilterCheckboxes(), "wrap para");
-
- componentSelectionTable = new ComponentPresetTable(presets, displayedColumnKeys);
+ componentSelectionTable = new ComponentPresetTable(presetType, presets, displayedColumnKeys);
// GUIUtil.setAutomaticColumnTableWidths(componentSelectionTable, 20);
int w = componentSelectionTable.getRowHeight() + 4;
TableColumn tc = componentSelectionTable.getColumnModel().getColumn(0);
// GUIUtil.setAutomaticColumnTableWidths(componentSelectionTable, 20);
int w = componentSelectionTable.getRowHeight() + 4;
TableColumn tc = componentSelectionTable.getColumnModel().getColumn(0);
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenu;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JMenu;
private final TableRowSorter<TableModel> sorter;
private List<ComponentPreset> presets;
private final TableRowSorter<TableModel> sorter;
private List<ComponentPreset> presets;
+ private final ComponentPreset.Type presetType;
+ private Set<String> favorites;
private final AbstractTableModel tableModel;
private final XTableColumnModel tableColumnModel;
private final ComponentPresetTableColumn[] columns;
private final AbstractTableModel tableModel;
private final XTableColumnModel tableColumnModel;
private final ComponentPresetTableColumn[] columns;
- public ComponentPresetTable(List<ComponentPreset> presets, List<TypedKey<?>> visibleColumnKeys) {
+ public ComponentPresetTable(final ComponentPreset.Type presetType, List<ComponentPreset> presets, List<TypedKey<?>> visibleColumnKeys) {
super();
this.presets = presets;
super();
this.presets = presets;
+ this.presetType = presetType;
+ this.favorites = Application.getPreferences().getComponentFavorites(presetType);
this.columns = new ComponentPresetTableColumn[ComponentPreset.ORDERED_KEY_LIST.size()+1];
this.columns = new ComponentPresetTableColumn[ComponentPreset.ORDERED_KEY_LIST.size()+1];
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
- return myColumns[columnIndex].getValueFromPreset(ComponentPresetTable.this.presets.get(rowIndex));
+ return myColumns[columnIndex].getValueFromPreset(favorites,ComponentPresetTable.this.presets.get(rowIndex));
return;
}
ComponentPreset preset = ComponentPresetTable.this.presets.get(rowIndex);
return;
}
ComponentPreset preset = ComponentPresetTable.this.presets.get(rowIndex);
- Application.getComponentPresetDao().setFavorite(preset, (Boolean) aValue);
+ Application.getComponentPresetDao().setFavorite(preset, presetType, (Boolean) aValue);
+ ComponentPresetTable.this.updateFavorites();
public void updateData( List<ComponentPreset> presets ) {
this.presets = presets;
public void updateData( List<ComponentPreset> presets ) {
this.presets = presets;
+ this.favorites = Application.getPreferences().getComponentFavorites(presetType);
this.tableModel.fireTableDataChanged();
}
this.tableModel.fireTableDataChanged();
}
+ public void updateFavorites() {
+ this.favorites = Application.getPreferences().getComponentFavorites(presetType);
+ this.tableModel.fireTableDataChanged();
+ }
+
private void doPopup(MouseEvent evt ) {
// Figure out what column header was clicked on.
private void doPopup(MouseEvent evt ) {
// Figure out what column header was clicked on.
package net.sf.openrocket.gui.dialogs.preset;
package net.sf.openrocket.gui.dialogs.preset;
-import javax.swing.table.TableCellEditor;
import javax.swing.table.TableColumn;
import net.sf.openrocket.l10n.Translator;
import javax.swing.table.TableColumn;
import net.sf.openrocket.l10n.Translator;
- public abstract Object getValueFromPreset( ComponentPreset preset );
+ public abstract Object getValueFromPreset( Set<String> favorites, ComponentPreset preset );
public static class Favorite extends ComponentPresetTableColumn {
public static class Favorite extends ComponentPresetTableColumn {
- public Object getValueFromPreset( ComponentPreset preset ) {
- return Boolean.valueOf(preset.isFavorite());
+ public Object getValueFromPreset( Set<String> favorites, ComponentPreset preset ) {
+ return Boolean.valueOf(favorites.contains(preset.preferenceKey()));
- public Object getValueFromPreset(ComponentPreset preset) {
+ public Object getValueFromPreset(Set<String> favorites, ComponentPreset preset) {
return preset.has(key) ? preset.get(key) : null;
}
return preset.has(key) ? preset.get(key) : null;
}
- public Object getValueFromPreset(ComponentPreset preset) {
- Double value = (Double) super.getValueFromPreset(preset);
+ public Object getValueFromPreset(Set<String> favorites, ComponentPreset preset) {
+ Double value = (Double) super.getValueFromPreset(favorites, preset);
- return new Value((Double)super.getValueFromPreset(preset),selectedUnit);
+ return new Value((Double)super.getValueFromPreset(favorites, preset),selectedUnit);
- public void setComponentFavorite( ComponentPreset preset, boolean favorite ) {
- Preferences prefs = PREFNODE.node("favoritePresets");
+ public void setComponentFavorite( ComponentPreset preset, ComponentPreset.Type type, boolean favorite ) {
+ Preferences prefs = PREFNODE.node("favoritePresets").node(type.name());
if ( favorite ) {
prefs.putBoolean(preset.preferenceKey(), true);
} else {
if ( favorite ) {
prefs.putBoolean(preset.preferenceKey(), true);
} else {
- public Set<String> getComponentFavorites( ) {
- Preferences prefs = PREFNODE.node("favoritePresets");
+ public Set<String> getComponentFavorites( ComponentPreset.Type type) {
+ Preferences prefs = PREFNODE.node("favoritePresets").node(type.name());
Set<String> collection = new HashSet<String>();
try {
collection.addAll( Arrays.asList(prefs.keys()));
Set<String> collection = new HashSet<String>();
try {
collection.addAll( Arrays.asList(prefs.keys()));
private final TypedPropertyMap properties = new TypedPropertyMap();
private final TypedPropertyMap properties = new TypedPropertyMap();
- private boolean favorite = false;
private String digest = "";
public enum Type {
private String digest = "";
public enum Type {
- public boolean isFavorite() {
- return favorite;
- }
-
- public void setFavorite(boolean favorite) {
- this.favorite = favorite;
- }
-
@Override
public int compareTo(ComponentPreset p2) {
int manuCompare = this.getManufacturer().getSimpleName().compareTo(p2.getManufacturer().getSimpleName());
@Override
public int compareTo(ComponentPreset p2) {
int manuCompare = this.getManufacturer().getSimpleName().compareTo(p2.getManufacturer().getSimpleName());
import java.io.InputStreamReader;
import java.util.Collection;
import java.util.List;
import java.io.InputStreamReader;
import java.util.Collection;
import java.util.List;
import javax.xml.bind.JAXBException;
import javax.xml.bind.JAXBException;
log.debug("Loading presets from file " + filename);
log.debug("Loading presets from file " + filename);
- Set<String> favorites = Application.getPreferences().getComponentFavorites();
-
try {
List<ComponentPreset> presets;
presets = (new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent( new InputStreamReader (stream))).asComponentPresets();
try {
List<ComponentPreset> presets;
presets = (new OpenRocketComponentSaver().unmarshalFromOpenRocketComponent( new InputStreamReader (stream))).asComponentPresets();
- for( ComponentPreset preset : presets ) {
- if ( favorites.contains(preset.preferenceKey())) {
- preset.setFavorite(true);
- }
- }
log.debug("ComponentPreset file " + filename + " contained " + presets.size() + " presets");
return presets;
} catch (JAXBException e) {
log.debug("ComponentPreset file " + filename + " contained " + presets.size() + " presets");
return presets;
} catch (JAXBException e) {
public abstract Set<Material> getUserMaterials();\r
public abstract void removeUserMaterial(Material m);\r
\r
public abstract Set<Material> getUserMaterials();\r
public abstract void removeUserMaterial(Material m);\r
\r
- public abstract void setComponentFavorite( ComponentPreset preset, boolean favorite );\r
- public abstract Set<String> getComponentFavorites( );\r
+ public abstract void setComponentFavorite( ComponentPreset preset, ComponentPreset.Type type, boolean favorite );\r
+ public abstract Set<String> getComponentFavorites( ComponentPreset.Type type );\r
\r
/*\r
* Map of default line styles\r
\r
/*\r
* Map of default line styles\r