Skip to content

Commit

Permalink
New Feature: Import/Export Routes (Issue #167)
Browse files Browse the repository at this point in the history
  • Loading branch information
GoldenGnu committed Aug 6, 2020
1 parent 9f5dda2 commit 902515a
Show file tree
Hide file tree
Showing 12 changed files with 348 additions and 64 deletions.
Expand Up @@ -19,7 +19,7 @@
*
*/

package net.nikr.eve.jeveasset.gui.tabs.stockpile;
package net.nikr.eve.jeveasset.gui.shared.components;

import java.awt.Font;
import java.awt.event.ActionEvent;
Expand All @@ -32,11 +32,10 @@
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import net.nikr.eve.jeveasset.Program;
import net.nikr.eve.jeveasset.gui.shared.components.JDialogCentered;
import net.nikr.eve.jeveasset.i18n.TabsStockpile;
import net.nikr.eve.jeveasset.i18n.GuiShared;


public class StockpileImportDialog extends JDialogCentered {
public class JImportDialog extends JDialogCentered {

private enum StockpileImportAction {
OK,
Expand Down Expand Up @@ -67,24 +66,35 @@ public enum ImportReturn {
private final JButton jOK;
private final JButton jCancel;
private final ListenerClass listenerClass;
private final ImportOptions importOptions;

private ImportReturn importReturn;

public StockpileImportDialog(Program program) {
super(program, TabsStockpile.get().importOptions());
public JImportDialog(Program program, ImportOptions importOptions) {
super(program, GuiShared.get().importOptions());
this.importOptions = importOptions;

listenerClass = new ListenerClass();

jName = new JLabel();
jName.setFont(new Font(jName.getFont().getName(), Font.BOLD, jName.getFont().getSize() + 1));
jRenameLabel = new JLabel(TabsStockpile.get().importOptionsRenameHelp());
jRename = new JRadioButton(TabsStockpile.get().importOptionsRename());
jMergeLabel = new JLabel(TabsStockpile.get().importOptionsMergeHelp());
jMerge = new JRadioButton(TabsStockpile.get().importOptionsMerge());
jOverwriteLabel = new JLabel(TabsStockpile.get().importOptionsOverwriteHelp());
jOverwrite = new JRadioButton(TabsStockpile.get().importOptionsOverwrite());
jSkipLabel = new JLabel(TabsStockpile.get().importOptionsSkipHelp());
jSkip = new JRadioButton(TabsStockpile.get().importOptionsSkip());
jRenameLabel = new JLabel(importOptions.getTextRenameHelp());
jRename = new JRadioButton(GuiShared.get().importOptionsRename());
jMergeLabel = new JLabel(importOptions.getTextMergeHelp());
jMerge = new JRadioButton(GuiShared.get().importOptionsMerge());
jOverwriteLabel = new JLabel(importOptions.getTextOverwriteHelp());
jOverwrite = new JRadioButton(GuiShared.get().importOptionsOverwrite());
jSkipLabel = new JLabel(importOptions.getTextSkipHelp());
jSkip = new JRadioButton(GuiShared.get().importOptionsSkip());

jRenameLabel.setVisible(importOptions.isRenameSupported());
jRename.setVisible(importOptions.isRenameSupported());
jMergeLabel.setVisible(importOptions.isMergeSupported());
jMerge.setVisible(importOptions.isMergeSupported());
jOverwriteLabel.setVisible(importOptions.isOverwriteSupported());
jOverwrite.setVisible(importOptions.isOverwriteSupported());
jSkipLabel.setVisible(importOptions.isSkipSupported());
jSkip.setVisible(importOptions.isSkipSupported());

ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(jRename);
Expand All @@ -94,11 +104,11 @@ public StockpileImportDialog(Program program) {

jAll = new JCheckBox();

jOK = new JButton(TabsStockpile.get().ok());
jOK = new JButton(GuiShared.get().ok());
jOK.setActionCommand(StockpileImportAction.OK.name());
jOK.addActionListener(listenerClass);

jCancel = new JButton(TabsStockpile.get().cancel());
jCancel = new JButton(GuiShared.get().cancel());
jCancel.setActionCommand(StockpileImportAction.CANCEL.name());
jCancel.addActionListener(listenerClass);

Expand Down Expand Up @@ -165,7 +175,7 @@ public void resetToDefault() {

public ImportReturn show(String name, int count) {
jName.setText(name);
jAll.setText(TabsStockpile.get().importOptionsAll(count));
jAll.setText(importOptions.getTextAll(count));
jAll.setEnabled(count > 1);
setVisible(true);
return importReturn;
Expand Down Expand Up @@ -215,8 +225,18 @@ public void actionPerformed(ActionEvent e) {
setVisible(false);
}
}
}

public static interface ImportOptions {
public boolean isRenameSupported();
public boolean isMergeSupported();
public boolean isOverwriteSupported();
public boolean isSkipSupported();
public String getTextRenameHelp();
public String getTextMergeHelp();
public String getTextOverwriteHelp();
public String getTextSkipHelp();
public String getTextAll(int count);

}


}
Expand Up @@ -19,7 +19,7 @@
*
*/

package net.nikr.eve.jeveasset.gui.tabs.stockpile;
package net.nikr.eve.jeveasset.gui.shared.components;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
Expand All @@ -34,14 +34,12 @@
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import net.nikr.eve.jeveasset.Program;
import net.nikr.eve.jeveasset.gui.shared.components.JDialogCentered;
import net.nikr.eve.jeveasset.gui.shared.components.JMultiSelectionList;
import net.nikr.eve.jeveasset.i18n.TabsStockpile;
import net.nikr.eve.jeveasset.i18n.GuiShared;


public class StockpileSelectionDialog<T> extends JDialogCentered {
public class JMultiSelectionDialog<T> extends JDialogCentered {

private enum StockpileSelection {
private enum MultiSelectionActions {
OK, CANCEL
}

Expand All @@ -53,22 +51,22 @@ private enum StockpileSelection {
private List<T> data;
private boolean emptyAllowed;

public StockpileSelectionDialog(final Program program, String title) {
public JMultiSelectionDialog(final Program program, String title) {
super(program, title);

ListenerClass listener = new ListenerClass();

jList = new JMultiSelectionList<T>();
jList = new JMultiSelectionList<>();
jList.addListSelectionListener(listener);
JScrollPane jListScroll = new JScrollPane(jList);

jOK = new JButton(TabsStockpile.get().ok());
jOK.setActionCommand(StockpileSelection.OK.name());
jOK = new JButton(GuiShared.get().ok());
jOK.setActionCommand(MultiSelectionActions.OK.name());
jOK.addActionListener(listener);
jOK.setEnabled(false);

JButton jCancel = new JButton(TabsStockpile.get().cancel());
jCancel.setActionCommand(StockpileSelection.CANCEL.name());
JButton jCancel = new JButton(GuiShared.get().cancel());
jCancel.setActionCommand(MultiSelectionActions.CANCEL.name());
jCancel.addActionListener(listener);

layout.setHorizontalGroup(
Expand Down Expand Up @@ -99,14 +97,13 @@ protected JButton getDefaultButton() {
return jOK;
}

public List<T> show(List<T> stockpiles) {
emptyAllowed = false;
return show(stockpiles, new ArrayList<Integer>());
public List<T> show(Collection<T> items, boolean emptyAllowed) {
return show(items, new ArrayList<>(), emptyAllowed);
}

public List<T> show(List<T> stockpiles, Collection<Integer> selected) {
emptyAllowed = true;
jList.setModel(new DataListModel<>(stockpiles));
public List<T> show(Collection<T> items, Collection<Integer> selected, boolean emptyAllowed) {
this.emptyAllowed = emptyAllowed;
jList.setModel(new DataListModel<>(new ArrayList<>(items)));
int[] indices = new int[selected.size()];
int i = 0;
for (int index : selected) {
Expand Down Expand Up @@ -136,10 +133,10 @@ public void valueChanged(final ListSelectionEvent e) {

@Override
public void actionPerformed(final ActionEvent e) {
if (StockpileSelection.OK.name().equals(e.getActionCommand())) {
if (MultiSelectionActions.OK.name().equals(e.getActionCommand())) {
save();
}
if (StockpileSelection.CANCEL.name().equals(e.getActionCommand())) {
if (MultiSelectionActions.CANCEL.name().equals(e.getActionCommand())) {
setVisible(false);
}
}
Expand Down

0 comments on commit 902515a

Please sign in to comment.