/** * THIS IS CREATED BY tom_mai78101. PLEASE GIVE CREDIT FOR WORKING ON A CLONE. * * ALL WORKS COPYRIGHTED TO The Pokémon Company and Nintendo. I REPEAT, THIS IS A CLONE. * * YOU MAY NOT SELL COMMERCIALLY, OR YOU WILL BE PROSECUTED BY The Pokémon Company AND Nintendo. * * THE CREATOR IS NOT LIABLE FOR ANY DAMAGES DONE. FOLLOW LOCAL LAWS, BE RESPECTFUL, AND HAVE A GOOD DAY! * */ package editor; import java.awt.Dimension; import java.awt.GridLayout; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; public class TilePropertiesPanel extends JPanel implements DocumentListener { private static final long serialVersionUID = 1L; public JTextField alphaField; public JTextField redField; public JTextField greenField; public JTextField blueField; public CustomJTextField alphaInputField; public CustomJTextField redInputField; public CustomJTextField greenInputField; public CustomJTextField blueInputField; public int dataValue; public JLabel tileID, extendedTileID, tileSpecificID, fullDataInput; private static final Dimension SIZE = new Dimension(70, 10); private static final Dimension INPUT_SIZE = new Dimension(15, 15); public class CustomJLabel extends JLabel { private static final long serialVersionUID = 1L; public CustomJLabel(String string) { super(string); } @Override public Dimension getSize() { return SIZE; } @Override public Dimension getPreferredSize() { return SIZE; } @Override public Dimension getMaximumSize() { return SIZE; } @Override public Dimension getMinimumSize() { return SIZE; } } public class CustomJTextField extends JTextField { private static final long serialVersionUID = 1L; @Override public Dimension getSize() { return INPUT_SIZE; } @Override public Dimension getPreferredSize() { return INPUT_SIZE; } @Override public Dimension getMaximumSize() { return INPUT_SIZE; } @Override public Dimension getMinimumSize() { return INPUT_SIZE; } } public TilePropertiesPanel() { super(); tileID = new CustomJLabel("Tile ID:"); extendedTileID = new CustomJLabel("Ext. ID:"); tileSpecificID = new CustomJLabel("Other ID:"); fullDataInput = new CustomJLabel("Edit Data:"); alphaField = new CustomJTextField(); // AA redField = new CustomJTextField(); // RR greenField = new CustomJTextField(); // GG blueField = new CustomJTextField(); // BB alphaInputField = new CustomJTextField(); redInputField = new CustomJTextField(); greenInputField = new CustomJTextField(); blueInputField = new CustomJTextField(); tileID.setHorizontalAlignment(SwingConstants.CENTER); extendedTileID.setHorizontalAlignment(SwingConstants.CENTER); tileSpecificID.setHorizontalAlignment(SwingConstants.CENTER); alphaField.setHorizontalAlignment(SwingConstants.CENTER); redField.setHorizontalAlignment(SwingConstants.CENTER); greenField.setHorizontalAlignment(SwingConstants.CENTER); blueField.setHorizontalAlignment(SwingConstants.CENTER); alphaField.setEditable(false); redField.setEditable(false); greenField.setEditable(false); blueField.setEditable(false); alphaInputField.setHorizontalAlignment(SwingConstants.CENTER); redInputField.setHorizontalAlignment(SwingConstants.CENTER); greenInputField.setHorizontalAlignment(SwingConstants.CENTER); blueInputField.setHorizontalAlignment(SwingConstants.CENTER); alphaInputField.getDocument().addDocumentListener(this); redInputField.getDocument().addDocumentListener(this); greenInputField.getDocument().addDocumentListener(this); blueInputField.getDocument().addDocumentListener(this); this.setLayout(new GridLayout(0, 1)); this.add(tileID); this.add(alphaField); this.add(extendedTileID); this.add(redField); this.add(tileSpecificID); this.add(greenField); this.add(blueField); this.add(fullDataInput); this.add(alphaInputField); this.add(redInputField); this.add(greenInputField); this.add(blueInputField); this.validate(); } public char getAlpha() { try { return (char) (Integer.valueOf(alphaInputField.getText()) & 0xFF); } catch (NumberFormatException e) { return 0; } } public String getTileIDString() { return alphaField.getText(); } public char getRed() { try { return (char) (Integer.valueOf(redInputField.getText()) & 0xFF); } catch (NumberFormatException e) { return 0; } } public String getExtendedTileIDString() { return redField.getText(); } public char getGreen() { try { return (char) (Integer.valueOf(greenInputField.getText()) & 0xFF); } catch (NumberFormatException e) { return 0; } } public String getTileIDGString() { return greenField.getText(); } public char getBlue() { try { return (char) (Integer.valueOf(blueInputField.getText()) & 0xFF); } catch (NumberFormatException e) { return 0; } } public void clearInputFields() { this.alphaInputField.setText(""); this.redInputField.setText(""); this.greenInputField.setText(""); this.blueInputField.setText(""); } @Override public void changedUpdate(DocumentEvent event) { try { byte a = (byte) (Integer.valueOf(this.alphaInputField.getText()) & 0xFF); byte r = (byte) (Integer.valueOf(this.redInputField.getText()) & 0xFF); byte g = (byte) (Integer.valueOf(this.greenInputField.getText()) & 0xFF); byte b = (byte) (Integer.valueOf(this.blueInputField.getText()) & 0xFF); this.dataValue = (a << 24) | (r << 16) | (g << 8) | b; } catch (Exception e) { dataValue = 0; } } @Override public void insertUpdate(DocumentEvent event) { try { byte a = (byte) (Integer.valueOf(this.alphaInputField.getText()) & 0xFF); byte r = (byte) (Integer.valueOf(this.redInputField.getText()) & 0xFF); byte g = (byte) (Integer.valueOf(this.greenInputField.getText()) & 0xFF); byte b = (byte) (Integer.valueOf(this.blueInputField.getText()) & 0xFF); this.dataValue = (a << 24) | (r << 16) | (g << 8) | b; } catch (Exception e) { dataValue = 0; } } @Override public void removeUpdate(DocumentEvent event) { try { byte a = (byte) (Integer.valueOf(this.alphaInputField.getText()) & 0xFF); byte r = (byte) (Integer.valueOf(this.redInputField.getText()) & 0xFF); byte g = (byte) (Integer.valueOf(this.greenInputField.getText()) & 0xFF); byte b = (byte) (Integer.valueOf(this.blueInputField.getText()) & 0xFF); this.dataValue = (a << 24) | (r << 16) | (g << 8) | b; } catch (Exception e) { dataValue = 0; } } @Override public void validate() { super.validate(); switch (EditorConstants.metadata) { case Pixel_Data: this.tileID.setText("Tile ID:"); this.extendedTileID.setText("Extended ID:"); this.tileSpecificID.setText("Other IDs:"); this.fullDataInput.setVisible(true); this.alphaInputField.setVisible(true); this.redInputField.setVisible(true); this.greenInputField.setVisible(true); this.blueInputField.setVisible(true); break; case Triggers: this.tileID.setText("X Position:"); this.extendedTileID.setText("Y Position:"); this.tileSpecificID.setText("Trigger ID:"); this.fullDataInput.setVisible(false); this.alphaInputField.setVisible(false); this.redInputField.setVisible(false); this.greenInputField.setVisible(false); this.blueInputField.setVisible(false); break; } } }