// Looks like: http://img379.imageshack.us/my.php?image=screenshot1zr2.png // Have fun! /* * CreatureLookupDialog.java * * Created on May 15, 2007, 6:13 PM */ package games.stendhal.client.gui; import games.stendhal.server.config.CreaturesXMLLoader; import games.stendhal.server.config.ItemsXMLLoader; import games.stendhal.server.entity.creature.impl.DropItem; import games.stendhal.server.rule.defaultruleset.DefaultCreature; import games.stendhal.server.rule.defaultruleset.DefaultItem; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * * @author zenix */ public class CreatureLookupDialog extends javax.swing.JDialog { //This must be in a void //can't be in the void as it needs to be used later CreaturesXMLLoader creatureLoader; //used later List creatures; private void loadCreatures() { creatureLoader = CreaturesXMLLoader.get(); try { creatures = creatureLoader.load("data/conf/creatures.xml"); } catch(Exception e) { System.out.println("Error in loading creatures.xml for CreatureLookupDialog: "); e.printStackTrace(); } } /** Creates new form CreatureLookupDialog */ public CreatureLookupDialog(java.awt.Frame parent, boolean modal) { loadCreatures(); super(parent, modal); initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // private void initComponents() { directions_lbl = new javax.swing.JLabel(); creature_list = new javax.swing.JComboBox(); jButton1 = new javax.swing.JButton(); jSeparator1 = new javax.swing.JSeparator(); health_lbl = new javax.swing.JLabel(); atk_lbl = new javax.swing.JLabel(); def_lbl = new javax.swing.JLabel(); exp_lbl = new javax.swing.JLabel(); lvl_lbl = new javax.swing.JLabel(); creature_name_lbl = new javax.swing.JLabel(); getContentPane().setLayout(null); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); directions_lbl.setText("Please choose a creature from the list below"); getContentPane().add(directions_lbl); directions_lbl.setBounds(10, 10, 276, 15); creature_list.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Loading..." })); // begin Creatures.xml loader Collections.sort(creatures, new Comparator() { public int compare(DefaultCreature o1, DefaultCreature o2) { return o1.getLevel() - o2.getLevel(); } @Override public boolean equals(Object obj) { return true; } }); for(DefaultCreature creature: creatures) { String name = creature.getCreatureName(); creature_list.addItem(makeObj(name)); } // end creatures.xml loader getContentPane().add(creature_list); creature_list.setBounds(10, 30, 100, 23); jButton1.setText("Look it up"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); getContentPane().add(jButton1); jButton1.setBounds(120, 30, 100, 25); getContentPane().add(jSeparator1); jSeparator1.setBounds(0, 70, 300, 10); health_lbl.setText("0 health"); getContentPane().add(health_lbl); health_lbl.setBounds(10, 140, 60, 15); atk_lbl.setText("Attack: 0"); getContentPane().add(atk_lbl); atk_lbl.setBounds(10, 100, 60, 15); def_lbl.setText("Defense: 0"); getContentPane().add(def_lbl); def_lbl.setBounds(10, 120, 70, 15); exp_lbl.setText("0 exp given"); getContentPane().add(exp_lbl); exp_lbl.setBounds(10, 160, 80, 15); lvl_lbl.setText("Level 0"); getContentPane().add(lvl_lbl); lvl_lbl.setBounds(10, 80, 50, 15); creature_name_lbl.setFont(new java.awt.Font("Dialog", 1, 24)); getContentPane().add(creature_name_lbl); creature_name_lbl.setBounds(130, 90, 140, 40); pack(); }// private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // index - 1 as the first creature is drop-down index #1 but list index #0 DefaultCreature creature = creatures.get(creature_list.getSelectedIndex()-1); atk_lbl.setText("Attack: " + String.valueOf(creature.getATK())); atk_lbl.setSize(atk_lbl.getPreferredSize()); def_lbl.setText("Defense: " + String.valueOf(creature.getDEF())); def_lbl.setSize(def_lbl.getPreferredSize()); lvl_lbl.setText("Level " + String.valueOf(creature.getLevel())); lvl_lbl.setSize(lvl_lbl.getPreferredSize()); health_lbl.setText(String.valueOf(creature.getHP()) + " health"); health_lbl.setSize(health_lbl.getPreferredSize()); exp_lbl.setText(String.valueOf(creature.getXP()) + " exp given"); exp_lbl.setSize(exp_lbl.getPreferredSize()); creature_name_lbl.setText(creature.getCreatureName()); creature_name_lbl.setSize(creature_name_lbl.getPreferredSize()); } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new CreatureLookupDialog(new javax.swing.JFrame(), true).setVisible(true); } }); } /** * Borrowed this from the Javadocs present on JComboBox * @param item the string to reverse it into an Object */ private Object makeObj(final String item) { return new Object() { public String toString() { return item; } }; } // Variables declaration - do not modify private javax.swing.JLabel atk_lbl; private javax.swing.JComboBox creature_list; private javax.swing.JLabel creature_name_lbl; private javax.swing.JLabel def_lbl; private javax.swing.JLabel directions_lbl; private javax.swing.JLabel exp_lbl; private javax.swing.JLabel health_lbl; private javax.swing.JButton jButton1; private javax.swing.JSeparator jSeparator1; private javax.swing.JLabel lvl_lbl; // End of variables declaration }