Added initial version
This commit is contained in:
@@ -0,0 +1,198 @@
|
||||
package com.editor.item;
|
||||
|
||||
import com.alex.loaders.items.ItemDefinitions;
|
||||
import com.alex.store.Store;
|
||||
import com.alex.utils.Utils;
|
||||
import com.editor.Main;
|
||||
import com.editor.item.ItemEditor;
|
||||
|
||||
import javax.swing.GroupLayout.Alignment;
|
||||
import javax.swing.LayoutStyle.ComponentPlacement;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.io.IOException;
|
||||
|
||||
public class ItemSelection extends JFrame {
|
||||
private static final long serialVersionUID = -3059309913196024742L;
|
||||
public static Store STORE;
|
||||
private JButton addButton;
|
||||
private JButton duplicateButton;
|
||||
private JButton editButton;
|
||||
private DefaultListModel itemsListmodel;
|
||||
private JList itemsList;
|
||||
private JMenu jMenu1;
|
||||
private JMenuBar jMenuBar1;
|
||||
private JMenuItem exitButton;
|
||||
private JButton deleteButton;
|
||||
|
||||
public ItemSelection(String cache) throws IOException {
|
||||
STORE = new Store(cache);
|
||||
this.setTitle("Item Selection");
|
||||
this.setResizable(false);
|
||||
this.setDefaultCloseOperation(1);
|
||||
this.setLocationRelativeTo((Component)null);
|
||||
this.initComponents();
|
||||
}
|
||||
|
||||
public ItemSelection() {
|
||||
this.initComponents();
|
||||
}
|
||||
|
||||
private void initComponents() {
|
||||
this.editButton = new JButton();
|
||||
this.addButton = new JButton();
|
||||
this.duplicateButton = new JButton();
|
||||
this.deleteButton = new JButton();
|
||||
this.jMenuBar1 = new JMenuBar();
|
||||
this.jMenu1 = new JMenu();
|
||||
this.exitButton = new JMenuItem();
|
||||
this.setDefaultCloseOperation(1);
|
||||
this.itemsListmodel = new DefaultListModel();
|
||||
this.itemsList = new JList(this.itemsListmodel);
|
||||
this.itemsList.setSelectionMode(1);
|
||||
this.itemsList.setLayoutOrientation(0);
|
||||
this.itemsList.setVisibleRowCount(-1);
|
||||
JScrollPane jScrollPane1 = new JScrollPane(this.itemsList);
|
||||
this.editButton.setText("Edit");
|
||||
this.editButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ItemDefinitions defs = (ItemDefinitions)ItemSelection.this.itemsList.getSelectedValue();
|
||||
if(defs != null) {
|
||||
new ItemEditor(ItemSelection.this, defs);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
this.addButton.setText("Add New");
|
||||
this.addButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ItemDefinitions defs = new ItemDefinitions(ItemSelection.STORE, ItemSelection.this.getNewItemID(), false);
|
||||
if(defs != null && defs.id != -1) {
|
||||
new ItemEditor(ItemSelection.this, defs);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
this.duplicateButton.setText("Duplicate");
|
||||
this.duplicateButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ItemDefinitions defs = (ItemDefinitions)ItemSelection.this.itemsList.getSelectedValue();
|
||||
if(defs != null) {
|
||||
defs = (ItemDefinitions)defs.clone();
|
||||
if(defs != null) {
|
||||
defs.id = ItemSelection.this.getNewItemID();
|
||||
if(defs.id != -1) {
|
||||
new ItemEditor(ItemSelection.this, defs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
this.deleteButton.setText("Delete");
|
||||
this.deleteButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
ItemDefinitions defs = (ItemDefinitions)ItemSelection.this.itemsList.getSelectedValue();
|
||||
JFrame frame = new JFrame();
|
||||
int result = JOptionPane.showConfirmDialog(frame, "Do you really want to delete item " + defs.id);
|
||||
if(result == 0) {
|
||||
if(defs == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
ItemSelection.STORE.getIndexes()[19].removeFile(defs.getArchiveId(), defs.getFileId());
|
||||
ItemSelection.this.removeItemDefs(defs);
|
||||
Main.log("ItemSelection", "Item " + defs.id + " removed.");
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
this.jMenu1.setText("File");
|
||||
this.exitButton.setText("Close");
|
||||
this.exitButton.addActionListener(new ActionListener() {
|
||||
public void actionPerformed(ActionEvent evt) {
|
||||
ItemSelection.this.exitButtonActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
this.jMenu1.add(this.exitButton);
|
||||
this.jMenuBar1.add(this.jMenu1);
|
||||
this.setJMenuBar(this.jMenuBar1);
|
||||
GroupLayout layout = new GroupLayout(this.getContentPane());
|
||||
this.getContentPane().setLayout(layout);
|
||||
layout.setHorizontalGroup(layout.createParallelGroup(Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout.createParallelGroup(Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(Alignment.LEADING, false).addComponent(jScrollPane1, -2, 200, -2).addGroup(layout.createSequentialGroup().addComponent(this.editButton).addPreferredGap(ComponentPlacement.RELATED, -1, 32767).addComponent(this.addButton))).addGap(0, 0, 32767)).addGroup(layout.createSequentialGroup().addComponent(this.duplicateButton).addPreferredGap(ComponentPlacement.RELATED, -1, 32767).addComponent(this.deleteButton))).addContainerGap(-1, 32767)));
|
||||
layout.setVerticalGroup(layout.createParallelGroup(Alignment.LEADING).addGroup(layout.createSequentialGroup().addContainerGap().addComponent(jScrollPane1, -2, 279, -2).addPreferredGap(ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(Alignment.BASELINE).addComponent(this.editButton).addComponent(this.addButton)).addPreferredGap(ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(Alignment.BASELINE).addComponent(this.duplicateButton).addComponent(this.deleteButton)).addContainerGap(-1, 32767)));
|
||||
this.pack();
|
||||
this.addAllItems();
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
STORE = new Store("cache/", false);
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
(new ItemSelection()).setVisible(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void exitButtonActionPerformed(ActionEvent evt) {
|
||||
this.dispose();
|
||||
}
|
||||
|
||||
public int getNewItemID() {
|
||||
try {
|
||||
JFrame var3 = new JFrame();
|
||||
String parent1 = JOptionPane.showInputDialog(var3, "Enter new Item ID:");
|
||||
return Integer.parseInt(parent1.toString());
|
||||
} catch (Exception var31) {
|
||||
JFrame parent = new JFrame();
|
||||
JOptionPane.showMessageDialog(parent, "Please enter a valid integer!");
|
||||
Main.log("ItemSelection", "Non-valid character entered for new Item ID");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public void addAllItems() {
|
||||
int id;
|
||||
if(Utils.getItemDefinitionsSize(STORE) > 30000) {
|
||||
for(id = 0; id < Utils.getItemDefinitionsSize(STORE) - 22314; ++id) {
|
||||
this.addItemDefs(ItemDefinitions.getItemDefinition(STORE, id));
|
||||
}
|
||||
} else {
|
||||
for(id = 0; id < Utils.getItemDefinitionsSize(STORE); ++id) {
|
||||
this.addItemDefs(ItemDefinitions.getItemDefinition(STORE, id));
|
||||
}
|
||||
}
|
||||
|
||||
Main.log("ItemSelection", "All Items Loaded");
|
||||
}
|
||||
|
||||
public void addItemDefs(final ItemDefinitions defs) {
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
ItemSelection.this.itemsListmodel.addElement(defs);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void updateItemDefs(final ItemDefinitions defs) {
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
int index = ItemSelection.this.itemsListmodel.indexOf(defs);
|
||||
if(index == -1) {
|
||||
ItemSelection.this.itemsListmodel.addElement(defs);
|
||||
} else {
|
||||
ItemSelection.this.itemsListmodel.setElementAt(defs, index);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void removeItemDefs(final ItemDefinitions defs) {
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
public void run() {
|
||||
ItemSelection.this.itemsListmodel.removeElement(defs);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user