Move Item to own class, remove ObjectArrayEditor (will be merged with other class)
This commit is contained in:
parent
2cd3017ae7
commit
2242367832
34
src/main/java/eva2/gui/Item.java
Normal file
34
src/main/java/eva2/gui/Item.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package eva2.gui;
|
||||||
|
|
||||||
|
public class Item
|
||||||
|
{
|
||||||
|
private String id;
|
||||||
|
private String displayName;
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
public Item(String id, String displayName, String description)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
this.displayName = displayName;
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription()
|
||||||
|
{
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDisplayName() {
|
||||||
|
return displayName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
}
|
@ -1,110 +0,0 @@
|
|||||||
package eva2.gui;
|
|
||||||
|
|
||||||
import eva2.problems.AbstractProblemDouble;
|
|
||||||
|
|
||||||
import javax.swing.*;
|
|
||||||
import java.awt.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by fabian on 16/12/15.
|
|
||||||
*/
|
|
||||||
public class ObjectArrayEditor<T> extends JPanel {
|
|
||||||
private JList<T> objectList;
|
|
||||||
private DefaultListModel<T> listModel;
|
|
||||||
|
|
||||||
public ObjectArrayEditor(Class<T> type) {
|
|
||||||
listModel = new DefaultListModel<>();
|
|
||||||
|
|
||||||
setLayout(new GridBagLayout());
|
|
||||||
GridBagConstraints c = new GridBagConstraints();
|
|
||||||
c.gridwidth = 2;
|
|
||||||
c.fill = GridBagConstraints.HORIZONTAL;
|
|
||||||
c.weightx = 1.0;
|
|
||||||
c.weighty = 0.0;
|
|
||||||
c.gridx = 0;
|
|
||||||
c.gridy = 0;
|
|
||||||
|
|
||||||
TypeSelector typeSelector = new TypeSelector();
|
|
||||||
typeSelector.updateClassType(type.getName());
|
|
||||||
|
|
||||||
setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
|
||||||
add(typeSelector, c);
|
|
||||||
|
|
||||||
JButton addButton = new JButton("Add");
|
|
||||||
c.gridwidth = 1;
|
|
||||||
c.gridx = 2;
|
|
||||||
c.gridy = 0;
|
|
||||||
c.fill = GridBagConstraints.HORIZONTAL;
|
|
||||||
c.weightx = 1.0;
|
|
||||||
c.weighty = 0.0;
|
|
||||||
add(addButton, c);
|
|
||||||
|
|
||||||
JButton removeButton = new JButton("Remove");
|
|
||||||
c.gridx = 2;
|
|
||||||
c.gridy = 1;
|
|
||||||
c.fill = GridBagConstraints.HORIZONTAL;
|
|
||||||
c.weightx = 1.0;
|
|
||||||
c.weighty = 0.0;
|
|
||||||
add(removeButton, c);
|
|
||||||
|
|
||||||
JButton button;
|
|
||||||
button = new JButton("Config");
|
|
||||||
c.gridx = 2;
|
|
||||||
c.gridy = 2;
|
|
||||||
c.fill = GridBagConstraints.HORIZONTAL;
|
|
||||||
c.weightx = 1.0;
|
|
||||||
c.weighty = 0.0;
|
|
||||||
|
|
||||||
add(button, c);
|
|
||||||
|
|
||||||
objectList = new JList<>(listModel);
|
|
||||||
objectList.setVisibleRowCount(10);
|
|
||||||
//objectList.setFixedCellHeight(15);
|
|
||||||
//objectList.setFixedCellWidth(100);
|
|
||||||
|
|
||||||
c.gridwidth = 2;
|
|
||||||
c.gridheight = 5;
|
|
||||||
c.gridx = 0;
|
|
||||||
c.gridy = 1;
|
|
||||||
c.fill = GridBagConstraints.BOTH;
|
|
||||||
c.weightx = 1.0;
|
|
||||||
c.weighty = 1.0;
|
|
||||||
|
|
||||||
JScrollPane scrollPane = new JScrollPane(objectList);
|
|
||||||
add(scrollPane, c);
|
|
||||||
|
|
||||||
addButton.addActionListener(event -> {
|
|
||||||
String className = ((Item) typeSelector.getSelectedItem()).getId();
|
|
||||||
try {
|
|
||||||
T n = (T) Class.forName(className).newInstance();
|
|
||||||
listModel.addElement(n);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
System.err.println("Exception in itemStateChanged " + ex.getMessage());
|
|
||||||
System.err.println("Classpath is " + System.getProperty("java.class.path"));
|
|
||||||
ex.printStackTrace();
|
|
||||||
|
|
||||||
JOptionPane.showMessageDialog(this,
|
|
||||||
"Could not create an example of\n"
|
|
||||||
+ className + "\n"
|
|
||||||
+ "from the current classpath. Is the resource folder at the right place?\nIs the class abstract or the default constructor missing?",
|
|
||||||
"GenericObjectEditor",
|
|
||||||
JOptionPane.ERROR_MESSAGE);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
removeButton.addActionListener(event -> {
|
|
||||||
if (!objectList.isSelectionEmpty()) {
|
|
||||||
listModel.remove(objectList.getSelectedIndex());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
JFrame frame = new JFrame("ObjectArrayEditor");
|
|
||||||
frame.add(new ObjectArrayEditor<>(AbstractProblemDouble.class), BorderLayout.CENTER);
|
|
||||||
frame.setVisible(true);
|
|
||||||
frame.pack();
|
|
||||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
||||||
}
|
|
||||||
}
|
|
25
src/main/java/eva2/gui/TitledSeparator.java
Normal file
25
src/main/java/eva2/gui/TitledSeparator.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package eva2.gui;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by halfdan on 17/12/15.
|
||||||
|
*/
|
||||||
|
public final class TitledSeparator extends JPanel {
|
||||||
|
public TitledSeparator(String title) {
|
||||||
|
setLayout(new GridBagLayout());
|
||||||
|
|
||||||
|
GridBagConstraints gbConstraints = new GridBagConstraints();
|
||||||
|
gbConstraints.gridx = 0;
|
||||||
|
gbConstraints.gridy = 0;
|
||||||
|
|
||||||
|
add(new JLabel("<html><b>" + title), gbConstraints);
|
||||||
|
|
||||||
|
gbConstraints.gridx = 1;
|
||||||
|
gbConstraints.gridy = 0;
|
||||||
|
gbConstraints.weightx = 1.0;
|
||||||
|
gbConstraints.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
add(new JSeparator(JSeparator.HORIZONTAL), gbConstraints);
|
||||||
|
}
|
||||||
|
}
|
@ -112,35 +112,3 @@ class ToolTipComboBoxRenderer extends BasicComboBoxRenderer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Item
|
|
||||||
{
|
|
||||||
private String id;
|
|
||||||
private String displayName;
|
|
||||||
private String description;
|
|
||||||
|
|
||||||
public Item(String id, String displayName, String description)
|
|
||||||
{
|
|
||||||
this.id = id;
|
|
||||||
this.displayName = displayName;
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getId()
|
|
||||||
{
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription()
|
|
||||||
{
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDisplayName() {
|
|
||||||
return displayName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toString()
|
|
||||||
{
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user