[tiled] r578 - in branches/bjorn/src/tiled/mapeditor: . dialogs
svn@biggeruniverse.com
svn at biggeruniverse.com
Sat Feb 11 06:10:31 PST 2006
Author: bjorn
Date: 2006-02-11 08:10:30 -0600 (Sat, 11 Feb 2006)
New Revision: 578
Added:
branches/bjorn/src/tiled/mapeditor/dialogs/BrushDialog.java
branches/bjorn/src/tiled/mapeditor/dialogs/TilePaletteDialog.java
branches/bjorn/src/tiled/mapeditor/dialogs/TilesetManager.java
Removed:
branches/bjorn/src/tiled/mapeditor/BrushDialog.java
branches/bjorn/src/tiled/mapeditor/TilePaletteDialog.java
branches/bjorn/src/tiled/mapeditor/TilesetManager.java
Log:
Ok I guess these are indeed dialogs too.
Deleted: branches/bjorn/src/tiled/mapeditor/BrushDialog.java
===================================================================
--- branches/bjorn/src/tiled/mapeditor/BrushDialog.java 2006-02-11 13:44:22 UTC (rev 577)
+++ branches/bjorn/src/tiled/mapeditor/BrushDialog.java 2006-02-11 14:10:30 UTC (rev 578)
@@ -1,348 +0,0 @@
-/*
- * Tiled Map Editor, (c) 2004-2006
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Adam Turk <aturk at biggeruniverse.com>
- * Bjorn Lindeijer <b.lindeijer at xs4all.nl>
- */
-
-package tiled.mapeditor;
-
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import javax.swing.*;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-
-import tiled.core.Tile;
-import tiled.io.MapHelper;
-import tiled.io.MapReader;
-import tiled.mapeditor.brush.*;
-import tiled.mapeditor.plugin.PluginClassLoader;
-import tiled.mapeditor.util.LayerTableModel;
-import tiled.mapeditor.util.TiledFileFilter;
-import tiled.mapeditor.widget.BrushBrowser;
-import tiled.mapeditor.widget.IntegerSpinner;
-import tiled.mapeditor.widget.MiniMapViewer;
-import tiled.mapeditor.widget.VerticalStaticJPanel;
-import tiled.util.TiledConfiguration;
-
-/**
- * @version $Id$
- */
-public class BrushDialog extends JDialog implements ActionListener,
- ItemListener, ChangeListener, PropertyChangeListener,
- ListSelectionListener
-{
- private AbstractBrush myBrush;
- private final MapEditor editor;
-
- private JCheckBox cbRandomBrush;
- private IntegerSpinner affectLayers, brushSize;
- private JSlider sRandomAmount;
- private JButton bOk, bApply, bCancel;
- private BrushBrowser brushes;
- private MiniMapViewer mmv;
-
- public BrushDialog(MapEditor editor, JFrame parent,
- AbstractBrush currentBrush)
- {
- super(parent, "Brush Options", false);
- myBrush = currentBrush;
- this.editor = editor;
-
- init();
- update();
- pack();
-
- setLocationRelativeTo(parent);
- }
-
- private JPanel createShapePanel() {
- // Brush presets
- brushes = new BrushBrowser();
- JScrollPane brushScrollPane = new JScrollPane(brushes);
- brushScrollPane.setPreferredSize(new Dimension(100, 100));
- brushes.addPropertyChangeListener(this);
- brushes.setSelectedBrush(myBrush);
-
- JPanel presets = new JPanel();
- presets.setBorder(BorderFactory.createCompoundBorder(
- BorderFactory.createTitledBorder("Presets"),
- BorderFactory.createEmptyBorder(0, 5, 5, 5)));
- presets.setLayout(new GridLayout(1, 1));
- presets.add(brushScrollPane);
-
- // Brush size
- brushSize = new IntegerSpinner(1, 1);
- if (myBrush != null) {
- brushSize.setValue(myBrush.getBounds().width);
- }
- brushSize.addChangeListener(this);
- brushSize.setToolTipText("Sets the size of the brush in tiles");
-
- // Number of affected layers
- affectLayers = new IntegerSpinner(myBrush.getAffectedLayers(), 1);
- affectLayers.addChangeListener(this);
-
- // Randomize tile placement
- cbRandomBrush = new JCheckBox("Random");
- cbRandomBrush.setToolTipText(
- "Make brush paint randomly within the shape area");
- cbRandomBrush.addItemListener(this);
- sRandomAmount = new JSlider();
- sRandomAmount.setPreferredSize(new Dimension(
- 50, sRandomAmount.getPreferredSize().height));
- sRandomAmount.setToolTipText(
- "The amount of area to fill with randomness");
- sRandomAmount.addChangeListener(this);
-
- // Brush options section
- JPanel opts = new VerticalStaticJPanel();
- opts.setLayout(new GridBagLayout());
- opts.setBorder(BorderFactory.createCompoundBorder(
- BorderFactory.createTitledBorder("Options"),
- BorderFactory.createEmptyBorder(0, 5, 5, 5)));
- GridBagConstraints c = new GridBagConstraints();
- c.fill = GridBagConstraints.NONE;
- c.anchor = GridBagConstraints.NORTHWEST;
- c.weightx = 0;
- c.insets = new Insets(0, 0, 5, 0);
- opts.add(new JLabel("Brush size: "), c);
- c.gridy = 1;
- opts.add(new JLabel("Affected layers: "), c);
- c.gridy = 2;
- opts.add(cbRandomBrush, c);
- c.gridy = 0; c.gridx = 1; c.weightx = 0.3;
- c.fill = GridBagConstraints.HORIZONTAL;
- opts.add(brushSize, c);
- c.gridy = 1;
- opts.add(affectLayers, c);
- c.gridy = 2;
- opts.add(sRandomAmount, c);
-
- JPanel shapePanel = new JPanel();
- shapePanel.setLayout(new BoxLayout(shapePanel, BoxLayout.Y_AXIS));
- shapePanel.add(presets);
- shapePanel.add(opts);
-
- return shapePanel;
- }
-
- private JPanel createCustomPanel() {
- JPanel customPanel = new JPanel();
-
- mmv = new MiniMapViewer();
- if (myBrush instanceof CustomBrush) {
- //mmv.setView(((CustomBrush)myBrush));
- }
-
- JScrollPane miniSp = new JScrollPane();
- miniSp.getViewport().setView(mmv);
- miniSp.setPreferredSize(new Dimension(100,100));
- JButton bCreate = new JButton("Create...");
- bCreate.addActionListener(this);
- //TODO: create functionality is not available yet
- bCreate.setEnabled(false);
- JButton bLoad = new JButton("Load...");
- bLoad.addActionListener(this);
- JTable layerTable = new JTable(new LayerTableModel(myBrush));
- layerTable.getColumnModel().getColumn(0).setPreferredWidth(32);
- layerTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- layerTable.getSelectionModel().addListSelectionListener(this);
-
- customPanel.setLayout(new GridBagLayout());
- GridBagConstraints c = new GridBagConstraints();
- c.anchor = GridBagConstraints.NORTH;
- c.fill = GridBagConstraints.NONE;
- c.weightx = 2; c.weighty = 2;
- customPanel.add(miniSp, c);
- c.weightx = 1; c.weighty = 1;
- c.gridx=2;
- customPanel.add(bCreate, c);
- c.gridy=1;
- customPanel.add(bLoad, c);
- c.gridx=0; c.gridy=2;
- customPanel.add(layerTable, c);
-
- return customPanel;
- }
-
- private void init() {
- createCustomPanel();
-
- bOk = new JButton("OK");
- bApply = new JButton("Apply");
- bCancel = new JButton("Cancel");
- bOk.addActionListener(this);
- bApply.addActionListener(this);
- bCancel.addActionListener(this);
- bApply.setEnabled(false);
-
- /* BUTTONS PANEL */
- JPanel buttons = new VerticalStaticJPanel();
- buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS));
- buttons.add(Box.createGlue());
- buttons.add(bOk);
- buttons.add(Box.createRigidArea(new Dimension(5, 0)));
- buttons.add(bApply);
- buttons.add(Box.createRigidArea(new Dimension(5, 0)));
- buttons.add(bCancel);
-
- JPanel mainPanel = new JPanel();
- mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
- mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
- mainPanel.add(createShapePanel());
- mainPanel.add(Box.createRigidArea(new Dimension(0, 5)));
- mainPanel.add(buttons);
-
- getContentPane().add(mainPanel);
- getRootPane().setDefaultButton(bOk);
- }
-
- private void createFromOptions() {
- Tile t = null;
-
- if (myBrush instanceof ShapeBrush) {
- t = ((ShapeBrush)myBrush).getTile();
- }
-
- ShapeBrush sel = (ShapeBrush)brushes.getSelectedBrush();
- sel.setSize(((Integer)brushSize.getValue()).intValue());
-
- if (cbRandomBrush.isSelected()) {
- RandomBrush randomBrush = new RandomBrush(sel);
- randomBrush.setRatio(
- sRandomAmount.getValue() /
- (double)sRandomAmount.getMaximum());
- myBrush = randomBrush;
- } else {
- myBrush = new ShapeBrush(sel);
- }
-
- ((ShapeBrush)myBrush).setTile(t);
- myBrush.setAffectedLayers(
- ((Integer)affectLayers.getValue()).intValue());
-
- update();
- }
-
- private void update() {
- if (myBrush instanceof CustomBrush) { // Custom brush
- brushSize.setEnabled(false);
- affectLayers.setEnabled(false);
- cbRandomBrush.setEnabled(false);
- } else if (myBrush instanceof RandomBrush) { // Random brush
- cbRandomBrush.setSelected(true);
- sRandomAmount.setValue(
- (int)(((RandomBrush)myBrush).getRatio() * 100));
- }
-
- sRandomAmount.setEnabled(cbRandomBrush.isSelected());
- }
-
- public void actionPerformed(ActionEvent e) {
- Object source = e.getSource();
-
- if (source == bOk) {
- createFromOptions();
- editor.setBrush(myBrush);
- dispose();
- }
- else if (source == bApply) {
- createFromOptions();
- editor.setBrush(myBrush);
- bApply.setEnabled(false);
- }
- else if (source == bCancel) {
- dispose();
- }
- else if (e.getActionCommand().equals("Load...")) {
- try {
- openMap();
- //mmv.setView(((CustomBrush)myBrush));
- } catch (Exception e1) {
- e1.printStackTrace();
- JOptionPane.showMessageDialog(this,
- e1.toString(), "Load Brush",
- JOptionPane.WARNING_MESSAGE);
- }
- repaint();
- }
- }
-
- public void stateChanged(ChangeEvent e) {
- bApply.setEnabled(true);
- }
-
- public void itemStateChanged(ItemEvent event) {
- Object source = event.getItemSelectable();
-
- if (source == cbRandomBrush) {
- sRandomAmount.setEnabled(cbRandomBrush.isSelected());
- }
-
- bApply.setEnabled(true);
- }
-
- public void propertyChange(PropertyChangeEvent evt) {
- if (evt.getPropertyName().equals("selectedbrush")) {
- Brush b = brushes.getSelectedBrush();
- if (b != null) {
- brushSize.setValue(b.getBounds().width);
- }
- }
-
- bApply.setEnabled(true);
- }
-
- public void valueChanged(ListSelectionEvent e) {
- // TODO Auto-generated method stub
- }
-
- private void openMap() throws Exception {
- String startLocation = "";
- TiledConfiguration configuration = TiledConfiguration.getInstance();
-
- // Start at the location of the most recently loaded map file
- if (configuration.hasOption("tiled.recent.1")) {
- startLocation = configuration.getValue("tiled.recent.1");
- }
-
- JFileChooser ch = new JFileChooser(startLocation);
-
- try {
- MapReader[] readers = PluginClassLoader.getInstance().getReaders();
- for(int i = 0; i < readers.length; i++) {
- ch.addChoosableFileFilter(new TiledFileFilter(
- readers[i].getFilter(), readers[i].getName()));
- }
- } catch (Throwable e) {
- JOptionPane.showMessageDialog(this,
- "Error while loading plugins: " + e.getMessage(),
- "Error while loading map",
- JOptionPane.ERROR_MESSAGE);
- e.printStackTrace();
- }
-
- ch.addChoosableFileFilter(
- new TiledFileFilter(TiledFileFilter.FILTER_TMX));
-
- int ret = ch.showOpenDialog(this);
- if (ret == JFileChooser.APPROVE_OPTION) {
- myBrush = new CustomBrush(
- MapHelper.loadMap(ch.getSelectedFile().getAbsolutePath()));
- }
- }
-}
Deleted: branches/bjorn/src/tiled/mapeditor/TilePaletteDialog.java
===================================================================
--- branches/bjorn/src/tiled/mapeditor/TilePaletteDialog.java 2006-02-11 13:44:22 UTC (rev 577)
+++ branches/bjorn/src/tiled/mapeditor/TilePaletteDialog.java 2006-02-11 14:10:30 UTC (rev 578)
@@ -1,104 +0,0 @@
-/*
- * Tiled Map Editor, (c) 2004-2006
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Adam Turk <aturk at biggeruniverse.com>
- * Bjorn Lindeijer <b.lindeijer at xs4all.nl>
- */
-
-package tiled.mapeditor;
-
-import java.awt.event.*;
-import java.awt.*;
-import java.util.Vector;
-import javax.swing.*;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-
-import tiled.core.*;
-import tiled.mapeditor.util.*;
-import tiled.mapeditor.widget.*;
-
-
-public class TilePaletteDialog extends JDialog implements ActionListener,
- TileSelectionListener, ListSelectionListener
-{
- private final MapEditor editor;
- private Map currentMap;
- private TilePalettePanel pc;
- private JList sets;
- private Tile currentTile;
-
- public TilePaletteDialog(MapEditor editor, Map map) {
- super(editor.getAppFrame(), "Palette", false);
- this.editor = editor;
- init();
- setMap(map);
- setSize(new Dimension(300, 200));
- setLocationRelativeTo(getOwner());
- setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
- }
-
- public void setMap(Map map) {
- Vector tilesets = new Vector();
- currentMap = map;
- if (currentMap != null) {
- tilesets = currentMap.getTilesets();
- }
- pc.setTilesets(tilesets);
- sets.setListData(tilesets);
- }
-
- private void init() {
- sets = new JList();
- //TODO: the full functionality for multiple sets is not yet available.
- //sets.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
- sets.addListSelectionListener(this);
- JScrollPane setsSp = new JScrollPane(sets);
-
- pc = new TilePalettePanel();
- pc.addTileSelectionListener(this);
- JScrollPane paletteScrollPane = new JScrollPane(pc,
- JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
- JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
-
- JSplitPane splitPane = new JSplitPane(
- JSplitPane.HORIZONTAL_SPLIT, true);
- splitPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
- splitPane.setResizeWeight(0.75);
- splitPane.setLeftComponent(paletteScrollPane);
- splitPane.setRightComponent(setsSp);
-
- JPanel mainPanel = new JPanel(new GridBagLayout());
- GridBagConstraints c = new GridBagConstraints();
- c.fill = GridBagConstraints.BOTH;
- c.weightx = 1; c.weighty = 1;
- mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
- mainPanel.add(splitPane, c);
-
- getContentPane().add(mainPanel);
- }
-
- public void actionPerformed(ActionEvent e) {
- }
-
- public void tileSelected(TileSelectionEvent event) {
- Tile tile = event.getTile();
- if (tile != null) {
- editor.setCurrentTile(tile);
- }
- }
-
- public void valueChanged(ListSelectionEvent e) {
- Vector add = new Vector();
- Object[] setlist = sets.getSelectedValues();
- for (int i = 0; i < setlist.length; i++) {
- add.add(setlist[i]);
- }
- pc.setTilesets(add);
- }
-}
Deleted: branches/bjorn/src/tiled/mapeditor/TilesetManager.java
===================================================================
--- branches/bjorn/src/tiled/mapeditor/TilesetManager.java 2006-02-11 13:44:22 UTC (rev 577)
+++ branches/bjorn/src/tiled/mapeditor/TilesetManager.java 2006-02-11 14:10:30 UTC (rev 578)
@@ -1,234 +0,0 @@
-/*
- * Tiled Map Editor, (c) 2004-2006
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * Adam Turk <aturk at biggeruniverse.com>
- * Bjorn Lindeijer <b.lindeijer at xs4all.nl>
- * Rainer Deyke <rainerd at eldwood.com>
- */
-
-package tiled.mapeditor;
-
-import java.awt.*;
-import java.awt.event.*;
-import java.io.File;
-import java.util.Iterator;
-import java.util.Vector;
-import javax.swing.*;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-
-import tiled.core.*;
-import tiled.io.MapHelper;
-import tiled.io.MapWriter;
-import tiled.mapeditor.dialogs.TileDialog;
-import tiled.mapeditor.util.*;
-import tiled.mapeditor.plugin.PluginClassLoader;
-
-
-public class TilesetManager extends JDialog implements ActionListener,
- ListSelectionListener
-{
- private final Map map;
-
- private JButton saveAsButton, saveButton, embedButton;
- private JButton removeButton, editButton, closeButton;
- private JTable tilesetTable;
-
- public TilesetManager(JFrame parent, Map map) {
- super(parent, "Tileset Manager", true);
- this.map = map;
- init();
- pack();
- setLocationRelativeTo(getOwner());
- }
-
- private void init() {
- // Create the tileset table
- tilesetTable = new JTable(new TilesetTableModel(map));
- tilesetTable.getSelectionModel().addListSelectionListener(this);
- JScrollPane tilesetScrollPane = new JScrollPane(tilesetTable);
- tilesetScrollPane.setPreferredSize(new Dimension(360, 150));
-
- // Create the buttons
- saveButton = new JButton("Save");
- editButton = new JButton("Edit...");
- saveAsButton = new JButton("Save as...");
- embedButton = new JButton("Embed");
- removeButton = new JButton("Remove");
- closeButton = new JButton("Close");
-
- saveAsButton.addActionListener(this);
- saveButton.addActionListener(this);
- embedButton.addActionListener(this);
- removeButton.addActionListener(this);
- editButton.addActionListener(this);
- closeButton.addActionListener(this);
-
- // Create the main panel
- JPanel mainPanel = new JPanel(new GridBagLayout());
- mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
- GridBagConstraints c = new GridBagConstraints();
- c.fill = GridBagConstraints.BOTH;
- c.gridy = 0;
- c.gridwidth = 7;
- c.gridheight = 1;
- c.weightx = 1;
- c.weighty = 1;
- mainPanel.add(tilesetScrollPane, c);
- c.insets = new Insets(5, 0, 0, 5);
- c.gridy = 1;
- c.weighty = 0;
- c.weightx = 0;
- c.gridwidth = 1;
- mainPanel.add(saveButton, c);
- mainPanel.add(saveAsButton, c);
- mainPanel.add(embedButton, c);
- mainPanel.add(removeButton, c);
- mainPanel.add(editButton, c);
- c.weightx = 1;
- mainPanel.add(Box.createGlue(), c);
- c.weightx = 0;
- c.insets = new Insets(5, 0, 0, 0);
- mainPanel.add(closeButton, c);
-
- getContentPane().add(mainPanel);
- getRootPane().setDefaultButton(closeButton);
-
- tilesetTable.changeSelection(0, 0, false, false);
- }
-
- public void actionPerformed(ActionEvent event) {
- String command = event.getActionCommand();
- int selectedRow = tilesetTable.getSelectedRow();
- Vector tilesets = map.getTilesets();
- TileSet set = null;
- try {
- set = (TileSet)tilesets.get(selectedRow);
- } catch (IndexOutOfBoundsException e) {
- }
-
-
- if (command.equals("Close")) {
- dispose();
- } else if (command.equals("Edit...")) {
- if (map != null && selectedRow >= 0) {
- TileDialog tileDialog = new TileDialog(this, set);
- tileDialog.setVisible(true);
- }
- } else if (command.equals("Remove")) {
- try {
- if (checkSetUsage(set) > 0) {
- int ret = JOptionPane.showConfirmDialog(this,
- "This tileset is currently in use. " +
- "Are you sure you wish to remove it?",
- "Sure?", JOptionPane.YES_NO_CANCEL_OPTION);
- if (ret == JOptionPane.YES_OPTION) {
- map.removeTileset(set);
- updateTilesetTable();
- }
- } else {
- map.removeTileset(set);
- updateTilesetTable();
- }
- } catch (ArrayIndexOutOfBoundsException a) {
- } catch (Exception e) {
- JOptionPane.showMessageDialog(this, e.getMessage());
- }
- } else if (command.equals("Save as...")) {
- JFileChooser ch = new JFileChooser(map.getFilename());
-
- MapWriter writers[] = PluginClassLoader.getInstance().getWriters();
- for (int i = 0; i < writers.length; i++) {
- try {
- ch.addChoosableFileFilter(new TiledFileFilter(
- writers[i].getFilter(), writers[i].getName()));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- ch.addChoosableFileFilter
- (new TiledFileFilter(TiledFileFilter.FILTER_TSX));
- int ret = ch.showSaveDialog(this);
- if (ret == JFileChooser.APPROVE_OPTION) {
- String filename = ch.getSelectedFile().getAbsolutePath();
- File exist = new File(filename);
-
- if ((exist.exists()
- && JOptionPane.showConfirmDialog(this,
- "The file already exists. Do you wish to overwrite it?"
- ) == JOptionPane.OK_OPTION)
- || !exist.exists()) {
- try {
- MapHelper.saveTileset(set, filename);
- set.setSource(filename);
- embedButton.setEnabled(true);
- saveButton.setEnabled(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- } else if (command.equals("Save")) {
- try {
- MapHelper.saveTileset(set, set.getSource());
- } catch (Exception e) {
- e.printStackTrace();
- }
- } else if (command.equals("Embed")) {
- set.setSource(null);
- embedButton.setEnabled(false);
- saveButton.setEnabled(false);
- } else {
- System.out.println("Unimplemented command: " + command);
- }
- }
-
- private void updateTilesetTable() {
- ((TilesetTableModel)tilesetTable.getModel()).setMap(map);
- tilesetTable.repaint();
- }
-
- private int checkSetUsage(TileSet s) {
- int used = 0;
- Iterator tileIterator = s.iterator();
-
- while (tileIterator.hasNext()) {
- Tile tile = (Tile)tileIterator.next();
- Iterator layerIterator = map.getLayers();
-
- while (layerIterator.hasNext()) {
- MapLayer ml = (MapLayer)layerIterator.next();
- if (ml.isUsed(tile)) {
- used++;
- break;
- }
- }
- }
-
- return used;
- }
-
- public void valueChanged(ListSelectionEvent event) {
- updateButtons();
- }
-
- private void updateButtons() {
- int selectedRow = tilesetTable.getSelectedRow();
- Vector tilesets = map.getTilesets();
- TileSet set = null;
- try {
- set = (TileSet)tilesets.get(selectedRow);
- } catch (IndexOutOfBoundsException e) {
- }
-
- editButton.setEnabled(set != null);
- removeButton.setEnabled(set != null);
- saveButton.setEnabled(set != null && set.getSource() != null);
- embedButton.setEnabled(set != null && set.getSource() != null);
- }
-}
Copied: branches/bjorn/src/tiled/mapeditor/dialogs/BrushDialog.java (from rev 575, branches/bjorn/src/tiled/mapeditor/BrushDialog.java)
===================================================================
--- branches/bjorn/src/tiled/mapeditor/BrushDialog.java 2006-02-11 12:37:18 UTC (rev 575)
+++ branches/bjorn/src/tiled/mapeditor/dialogs/BrushDialog.java 2006-02-11 14:10:30 UTC (rev 578)
@@ -0,0 +1,349 @@
+/*
+ * Tiled Map Editor, (c) 2004-2006
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Adam Turk <aturk at biggeruniverse.com>
+ * Bjorn Lindeijer <b.lindeijer at xs4all.nl>
+ */
+
+package tiled.mapeditor.dialogs;
+
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import javax.swing.*;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import tiled.core.Tile;
+import tiled.io.MapHelper;
+import tiled.io.MapReader;
+import tiled.mapeditor.brush.*;
+import tiled.mapeditor.plugin.PluginClassLoader;
+import tiled.mapeditor.util.LayerTableModel;
+import tiled.mapeditor.util.TiledFileFilter;
+import tiled.mapeditor.widget.BrushBrowser;
+import tiled.mapeditor.widget.IntegerSpinner;
+import tiled.mapeditor.widget.MiniMapViewer;
+import tiled.mapeditor.widget.VerticalStaticJPanel;
+import tiled.mapeditor.MapEditor;
+import tiled.util.TiledConfiguration;
+
+/**
+ * @version $Id$
+ */
+public class BrushDialog extends JDialog implements ActionListener,
+ ItemListener, ChangeListener, PropertyChangeListener,
+ ListSelectionListener
+{
+ private AbstractBrush myBrush;
+ private final MapEditor editor;
+
+ private JCheckBox cbRandomBrush;
+ private IntegerSpinner affectLayers, brushSize;
+ private JSlider sRandomAmount;
+ private JButton bOk, bApply, bCancel;
+ private BrushBrowser brushes;
+ private MiniMapViewer mmv;
+
+ public BrushDialog(MapEditor editor, JFrame parent,
+ AbstractBrush currentBrush)
+ {
+ super(parent, "Brush Options", false);
+ myBrush = currentBrush;
+ this.editor = editor;
+
+ init();
+ update();
+ pack();
+
+ setLocationRelativeTo(parent);
+ }
+
+ private JPanel createShapePanel() {
+ // Brush presets
+ brushes = new BrushBrowser();
+ JScrollPane brushScrollPane = new JScrollPane(brushes);
+ brushScrollPane.setPreferredSize(new Dimension(100, 100));
+ brushes.addPropertyChangeListener(this);
+ brushes.setSelectedBrush(myBrush);
+
+ JPanel presets = new JPanel();
+ presets.setBorder(BorderFactory.createCompoundBorder(
+ BorderFactory.createTitledBorder("Presets"),
+ BorderFactory.createEmptyBorder(0, 5, 5, 5)));
+ presets.setLayout(new GridLayout(1, 1));
+ presets.add(brushScrollPane);
+
+ // Brush size
+ brushSize = new IntegerSpinner(1, 1);
+ if (myBrush != null) {
+ brushSize.setValue(myBrush.getBounds().width);
+ }
+ brushSize.addChangeListener(this);
+ brushSize.setToolTipText("Sets the size of the brush in tiles");
+
+ // Number of affected layers
+ affectLayers = new IntegerSpinner(myBrush.getAffectedLayers(), 1);
+ affectLayers.addChangeListener(this);
+
+ // Randomize tile placement
+ cbRandomBrush = new JCheckBox("Random");
+ cbRandomBrush.setToolTipText(
+ "Make brush paint randomly within the shape area");
+ cbRandomBrush.addItemListener(this);
+ sRandomAmount = new JSlider();
+ sRandomAmount.setPreferredSize(new Dimension(
+ 50, sRandomAmount.getPreferredSize().height));
+ sRandomAmount.setToolTipText(
+ "The amount of area to fill with randomness");
+ sRandomAmount.addChangeListener(this);
+
+ // Brush options section
+ JPanel opts = new VerticalStaticJPanel();
+ opts.setLayout(new GridBagLayout());
+ opts.setBorder(BorderFactory.createCompoundBorder(
+ BorderFactory.createTitledBorder("Options"),
+ BorderFactory.createEmptyBorder(0, 5, 5, 5)));
+ GridBagConstraints c = new GridBagConstraints();
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.NORTHWEST;
+ c.weightx = 0;
+ c.insets = new Insets(0, 0, 5, 0);
+ opts.add(new JLabel("Brush size: "), c);
+ c.gridy = 1;
+ opts.add(new JLabel("Affected layers: "), c);
+ c.gridy = 2;
+ opts.add(cbRandomBrush, c);
+ c.gridy = 0; c.gridx = 1; c.weightx = 0.3;
+ c.fill = GridBagConstraints.HORIZONTAL;
+ opts.add(brushSize, c);
+ c.gridy = 1;
+ opts.add(affectLayers, c);
+ c.gridy = 2;
+ opts.add(sRandomAmount, c);
+
+ JPanel shapePanel = new JPanel();
+ shapePanel.setLayout(new BoxLayout(shapePanel, BoxLayout.Y_AXIS));
+ shapePanel.add(presets);
+ shapePanel.add(opts);
+
+ return shapePanel;
+ }
+
+ private JPanel createCustomPanel() {
+ JPanel customPanel = new JPanel();
+
+ mmv = new MiniMapViewer();
+ if (myBrush instanceof CustomBrush) {
+ //mmv.setView(((CustomBrush)myBrush));
+ }
+
+ JScrollPane miniSp = new JScrollPane();
+ miniSp.getViewport().setView(mmv);
+ miniSp.setPreferredSize(new Dimension(100,100));
+ JButton bCreate = new JButton("Create...");
+ bCreate.addActionListener(this);
+ //TODO: create functionality is not available yet
+ bCreate.setEnabled(false);
+ JButton bLoad = new JButton("Load...");
+ bLoad.addActionListener(this);
+ JTable layerTable = new JTable(new LayerTableModel(myBrush));
+ layerTable.getColumnModel().getColumn(0).setPreferredWidth(32);
+ layerTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ layerTable.getSelectionModel().addListSelectionListener(this);
+
+ customPanel.setLayout(new GridBagLayout());
+ GridBagConstraints c = new GridBagConstraints();
+ c.anchor = GridBagConstraints.NORTH;
+ c.fill = GridBagConstraints.NONE;
+ c.weightx = 2; c.weighty = 2;
+ customPanel.add(miniSp, c);
+ c.weightx = 1; c.weighty = 1;
+ c.gridx=2;
+ customPanel.add(bCreate, c);
+ c.gridy=1;
+ customPanel.add(bLoad, c);
+ c.gridx=0; c.gridy=2;
+ customPanel.add(layerTable, c);
+
+ return customPanel;
+ }
+
+ private void init() {
+ createCustomPanel();
+
+ bOk = new JButton("OK");
+ bApply = new JButton("Apply");
+ bCancel = new JButton("Cancel");
+ bOk.addActionListener(this);
+ bApply.addActionListener(this);
+ bCancel.addActionListener(this);
+ bApply.setEnabled(false);
+
+ /* BUTTONS PANEL */
+ JPanel buttons = new VerticalStaticJPanel();
+ buttons.setLayout(new BoxLayout(buttons, BoxLayout.X_AXIS));
+ buttons.add(Box.createGlue());
+ buttons.add(bOk);
+ buttons.add(Box.createRigidArea(new Dimension(5, 0)));
+ buttons.add(bApply);
+ buttons.add(Box.createRigidArea(new Dimension(5, 0)));
+ buttons.add(bCancel);
+
+ JPanel mainPanel = new JPanel();
+ mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
+ mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
+ mainPanel.add(createShapePanel());
+ mainPanel.add(Box.createRigidArea(new Dimension(0, 5)));
+ mainPanel.add(buttons);
+
+ getContentPane().add(mainPanel);
+ getRootPane().setDefaultButton(bOk);
+ }
+
+ private void createFromOptions() {
+ Tile t = null;
+
+ if (myBrush instanceof ShapeBrush) {
+ t = ((ShapeBrush)myBrush).getTile();
+ }
+
+ ShapeBrush sel = (ShapeBrush)brushes.getSelectedBrush();
+ sel.setSize(((Integer)brushSize.getValue()).intValue());
+
+ if (cbRandomBrush.isSelected()) {
+ RandomBrush randomBrush = new RandomBrush(sel);
+ randomBrush.setRatio(
+ sRandomAmount.getValue() /
+ (double)sRandomAmount.getMaximum());
+ myBrush = randomBrush;
+ } else {
+ myBrush = new ShapeBrush(sel);
+ }
+
+ ((ShapeBrush)myBrush).setTile(t);
+ myBrush.setAffectedLayers(
+ ((Integer)affectLayers.getValue()).intValue());
+
+ update();
+ }
+
+ private void update() {
+ if (myBrush instanceof CustomBrush) { // Custom brush
+ brushSize.setEnabled(false);
+ affectLayers.setEnabled(false);
+ cbRandomBrush.setEnabled(false);
+ } else if (myBrush instanceof RandomBrush) { // Random brush
+ cbRandomBrush.setSelected(true);
+ sRandomAmount.setValue(
+ (int)(((RandomBrush)myBrush).getRatio() * 100));
+ }
+
+ sRandomAmount.setEnabled(cbRandomBrush.isSelected());
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ Object source = e.getSource();
+
+ if (source == bOk) {
+ createFromOptions();
+ editor.setBrush(myBrush);
+ dispose();
+ }
+ else if (source == bApply) {
+ createFromOptions();
+ editor.setBrush(myBrush);
+ bApply.setEnabled(false);
+ }
+ else if (source == bCancel) {
+ dispose();
+ }
+ else if (e.getActionCommand().equals("Load...")) {
+ try {
+ openMap();
+ //mmv.setView(((CustomBrush)myBrush));
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ JOptionPane.showMessageDialog(this,
+ e1.toString(), "Load Brush",
+ JOptionPane.WARNING_MESSAGE);
+ }
+ repaint();
+ }
+ }
+
+ public void stateChanged(ChangeEvent e) {
+ bApply.setEnabled(true);
+ }
+
+ public void itemStateChanged(ItemEvent event) {
+ Object source = event.getItemSelectable();
+
+ if (source == cbRandomBrush) {
+ sRandomAmount.setEnabled(cbRandomBrush.isSelected());
+ }
+
+ bApply.setEnabled(true);
+ }
+
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (evt.getPropertyName().equals("selectedbrush")) {
+ Brush b = brushes.getSelectedBrush();
+ if (b != null) {
+ brushSize.setValue(b.getBounds().width);
+ }
+ }
+
+ bApply.setEnabled(true);
+ }
+
+ public void valueChanged(ListSelectionEvent e) {
+ // TODO Auto-generated method stub
+ }
+
+ private void openMap() throws Exception {
+ String startLocation = "";
+ TiledConfiguration configuration = TiledConfiguration.getInstance();
+
+ // Start at the location of the most recently loaded map file
+ if (configuration.hasOption("tiled.recent.1")) {
+ startLocation = configuration.getValue("tiled.recent.1");
+ }
+
+ JFileChooser ch = new JFileChooser(startLocation);
+
+ try {
+ MapReader[] readers = PluginClassLoader.getInstance().getReaders();
+ for(int i = 0; i < readers.length; i++) {
+ ch.addChoosableFileFilter(new TiledFileFilter(
+ readers[i].getFilter(), readers[i].getName()));
+ }
+ } catch (Throwable e) {
+ JOptionPane.showMessageDialog(this,
+ "Error while loading plugins: " + e.getMessage(),
+ "Error while loading map",
+ JOptionPane.ERROR_MESSAGE);
+ e.printStackTrace();
+ }
+
+ ch.addChoosableFileFilter(
+ new TiledFileFilter(TiledFileFilter.FILTER_TMX));
+
+ int ret = ch.showOpenDialog(this);
+ if (ret == JFileChooser.APPROVE_OPTION) {
+ myBrush = new CustomBrush(
+ MapHelper.loadMap(ch.getSelectedFile().getAbsolutePath()));
+ }
+ }
+}
Property changes on: branches/bjorn/src/tiled/mapeditor/dialogs/BrushDialog.java
___________________________________________________________________
Name: svn:keywords
+ Id
Copied: branches/bjorn/src/tiled/mapeditor/dialogs/TilePaletteDialog.java (from rev 575, branches/bjorn/src/tiled/mapeditor/TilePaletteDialog.java)
===================================================================
--- branches/bjorn/src/tiled/mapeditor/TilePaletteDialog.java 2006-02-11 12:37:18 UTC (rev 575)
+++ branches/bjorn/src/tiled/mapeditor/dialogs/TilePaletteDialog.java 2006-02-11 14:10:30 UTC (rev 578)
@@ -0,0 +1,104 @@
+/*
+ * Tiled Map Editor, (c) 2004-2006
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Adam Turk <aturk at biggeruniverse.com>
+ * Bjorn Lindeijer <b.lindeijer at xs4all.nl>
+ */
+
+package tiled.mapeditor.dialogs;
+
+import java.awt.event.*;
+import java.awt.*;
+import java.util.Vector;
+import javax.swing.*;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import tiled.core.*;
+import tiled.mapeditor.util.*;
+import tiled.mapeditor.widget.*;
+import tiled.mapeditor.MapEditor;
+
+public class TilePaletteDialog extends JDialog implements ActionListener,
+ TileSelectionListener, ListSelectionListener
+{
+ private final MapEditor editor;
+ private Map currentMap;
+ private TilePalettePanel pc;
+ private JList sets;
+ private Tile currentTile;
+
+ public TilePaletteDialog(MapEditor editor, Map map) {
+ super(editor.getAppFrame(), "Palette", false);
+ this.editor = editor;
+ init();
+ setMap(map);
+ setSize(new Dimension(300, 200));
+ setLocationRelativeTo(getOwner());
+ setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
+ }
+
+ public void setMap(Map map) {
+ Vector tilesets = new Vector();
+ currentMap = map;
+ if (currentMap != null) {
+ tilesets = currentMap.getTilesets();
+ }
+ pc.setTilesets(tilesets);
+ sets.setListData(tilesets);
+ }
+
+ private void init() {
+ sets = new JList();
+ //TODO: the full functionality for multiple sets is not yet available.
+ //sets.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
+ sets.addListSelectionListener(this);
+ JScrollPane setsSp = new JScrollPane(sets);
+
+ pc = new TilePalettePanel();
+ pc.addTileSelectionListener(this);
+ JScrollPane paletteScrollPane = new JScrollPane(pc,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+
+ JSplitPane splitPane = new JSplitPane(
+ JSplitPane.HORIZONTAL_SPLIT, true);
+ splitPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
+ splitPane.setResizeWeight(0.75);
+ splitPane.setLeftComponent(paletteScrollPane);
+ splitPane.setRightComponent(setsSp);
+
+ JPanel mainPanel = new JPanel(new GridBagLayout());
+ GridBagConstraints c = new GridBagConstraints();
+ c.fill = GridBagConstraints.BOTH;
+ c.weightx = 1; c.weighty = 1;
+ mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
+ mainPanel.add(splitPane, c);
+
+ getContentPane().add(mainPanel);
+ }
+
+ public void actionPerformed(ActionEvent e) {
+ }
+
+ public void tileSelected(TileSelectionEvent event) {
+ Tile tile = event.getTile();
+ if (tile != null) {
+ editor.setCurrentTile(tile);
+ }
+ }
+
+ public void valueChanged(ListSelectionEvent e) {
+ Vector add = new Vector();
+ Object[] setlist = sets.getSelectedValues();
+ for (int i = 0; i < setlist.length; i++) {
+ add.add(setlist[i]);
+ }
+ pc.setTilesets(add);
+ }
+}
Property changes on: branches/bjorn/src/tiled/mapeditor/dialogs/TilePaletteDialog.java
___________________________________________________________________
Name: svn:keywords
+ Id
Copied: branches/bjorn/src/tiled/mapeditor/dialogs/TilesetManager.java (from rev 575, branches/bjorn/src/tiled/mapeditor/TilesetManager.java)
===================================================================
--- branches/bjorn/src/tiled/mapeditor/TilesetManager.java 2006-02-11 12:37:18 UTC (rev 575)
+++ branches/bjorn/src/tiled/mapeditor/dialogs/TilesetManager.java 2006-02-11 14:10:30 UTC (rev 578)
@@ -0,0 +1,233 @@
+/*
+ * Tiled Map Editor, (c) 2004-2006
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Adam Turk <aturk at biggeruniverse.com>
+ * Bjorn Lindeijer <b.lindeijer at xs4all.nl>
+ * Rainer Deyke <rainerd at eldwood.com>
+ */
+
+package tiled.mapeditor.dialogs;
+
+import java.awt.*;
+import java.awt.event.*;
+import java.io.File;
+import java.util.Iterator;
+import java.util.Vector;
+import javax.swing.*;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+
+import tiled.core.*;
+import tiled.io.MapHelper;
+import tiled.io.MapWriter;
+import tiled.mapeditor.dialogs.TileDialog;
+import tiled.mapeditor.util.*;
+import tiled.mapeditor.plugin.PluginClassLoader;
+
+public class TilesetManager extends JDialog implements ActionListener,
+ ListSelectionListener
+{
+ private final Map map;
+
+ private JButton saveAsButton, saveButton, embedButton;
+ private JButton removeButton, editButton, closeButton;
+ private JTable tilesetTable;
+
+ public TilesetManager(JFrame parent, Map map) {
+ super(parent, "Tileset Manager", true);
+ this.map = map;
+ init();
+ pack();
+ setLocationRelativeTo(getOwner());
+ }
+
+ private void init() {
+ // Create the tileset table
+ tilesetTable = new JTable(new TilesetTableModel(map));
+ tilesetTable.getSelectionModel().addListSelectionListener(this);
+ JScrollPane tilesetScrollPane = new JScrollPane(tilesetTable);
+ tilesetScrollPane.setPreferredSize(new Dimension(360, 150));
+
+ // Create the buttons
+ saveButton = new JButton("Save");
+ editButton = new JButton("Edit...");
+ saveAsButton = new JButton("Save as...");
+ embedButton = new JButton("Embed");
+ removeButton = new JButton("Remove");
+ closeButton = new JButton("Close");
+
+ saveAsButton.addActionListener(this);
+ saveButton.addActionListener(this);
+ embedButton.addActionListener(this);
+ removeButton.addActionListener(this);
+ editButton.addActionListener(this);
+ closeButton.addActionListener(this);
+
+ // Create the main panel
+ JPanel mainPanel = new JPanel(new GridBagLayout());
+ mainPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
+ GridBagConstraints c = new GridBagConstraints();
+ c.fill = GridBagConstraints.BOTH;
+ c.gridy = 0;
+ c.gridwidth = 7;
+ c.gridheight = 1;
+ c.weightx = 1;
+ c.weighty = 1;
+ mainPanel.add(tilesetScrollPane, c);
+ c.insets = new Insets(5, 0, 0, 5);
+ c.gridy = 1;
+ c.weighty = 0;
+ c.weightx = 0;
+ c.gridwidth = 1;
+ mainPanel.add(saveButton, c);
+ mainPanel.add(saveAsButton, c);
+ mainPanel.add(embedButton, c);
+ mainPanel.add(removeButton, c);
+ mainPanel.add(editButton, c);
+ c.weightx = 1;
+ mainPanel.add(Box.createGlue(), c);
+ c.weightx = 0;
+ c.insets = new Insets(5, 0, 0, 0);
+ mainPanel.add(closeButton, c);
+
+ getContentPane().add(mainPanel);
+ getRootPane().setDefaultButton(closeButton);
+
+ tilesetTable.changeSelection(0, 0, false, false);
+ }
+
+ public void actionPerformed(ActionEvent event) {
+ String command = event.getActionCommand();
+ int selectedRow = tilesetTable.getSelectedRow();
+ Vector tilesets = map.getTilesets();
+ TileSet set = null;
+ try {
+ set = (TileSet)tilesets.get(selectedRow);
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+
+ if (command.equals("Close")) {
+ dispose();
+ } else if (command.equals("Edit...")) {
+ if (map != null && selectedRow >= 0) {
+ TileDialog tileDialog = new TileDialog(this, set);
+ tileDialog.setVisible(true);
+ }
+ } else if (command.equals("Remove")) {
+ try {
+ if (checkSetUsage(set) > 0) {
+ int ret = JOptionPane.showConfirmDialog(this,
+ "This tileset is currently in use. " +
+ "Are you sure you wish to remove it?",
+ "Sure?", JOptionPane.YES_NO_CANCEL_OPTION);
+ if (ret == JOptionPane.YES_OPTION) {
+ map.removeTileset(set);
+ updateTilesetTable();
+ }
+ } else {
+ map.removeTileset(set);
+ updateTilesetTable();
+ }
+ } catch (ArrayIndexOutOfBoundsException a) {
+ } catch (Exception e) {
+ JOptionPane.showMessageDialog(this, e.getMessage());
+ }
+ } else if (command.equals("Save as...")) {
+ JFileChooser ch = new JFileChooser(map.getFilename());
+
+ MapWriter writers[] = PluginClassLoader.getInstance().getWriters();
+ for (int i = 0; i < writers.length; i++) {
+ try {
+ ch.addChoosableFileFilter(new TiledFileFilter(
+ writers[i].getFilter(), writers[i].getName()));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ ch.addChoosableFileFilter
+ (new TiledFileFilter(TiledFileFilter.FILTER_TSX));
+ int ret = ch.showSaveDialog(this);
+ if (ret == JFileChooser.APPROVE_OPTION) {
+ String filename = ch.getSelectedFile().getAbsolutePath();
+ File exist = new File(filename);
+
+ if ((exist.exists()
+ && JOptionPane.showConfirmDialog(this,
+ "The file already exists. Do you wish to overwrite it?"
+ ) == JOptionPane.OK_OPTION)
+ || !exist.exists()) {
+ try {
+ MapHelper.saveTileset(set, filename);
+ set.setSource(filename);
+ embedButton.setEnabled(true);
+ saveButton.setEnabled(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ } else if (command.equals("Save")) {
+ try {
+ MapHelper.saveTileset(set, set.getSource());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else if (command.equals("Embed")) {
+ set.setSource(null);
+ embedButton.setEnabled(false);
+ saveButton.setEnabled(false);
+ } else {
+ System.out.println("Unimplemented command: " + command);
+ }
+ }
+
+ private void updateTilesetTable() {
+ ((TilesetTableModel)tilesetTable.getModel()).setMap(map);
+ tilesetTable.repaint();
+ }
+
+ private int checkSetUsage(TileSet s) {
+ int used = 0;
+ Iterator tileIterator = s.iterator();
+
+ while (tileIterator.hasNext()) {
+ Tile tile = (Tile)tileIterator.next();
+ Iterator layerIterator = map.getLayers();
+
+ while (layerIterator.hasNext()) {
+ MapLayer ml = (MapLayer)layerIterator.next();
+ if (ml.isUsed(tile)) {
+ used++;
+ break;
+ }
+ }
+ }
+
+ return used;
+ }
+
+ public void valueChanged(ListSelectionEvent event) {
+ updateButtons();
+ }
+
+ private void updateButtons() {
+ int selectedRow = tilesetTable.getSelectedRow();
+ Vector tilesets = map.getTilesets();
+ TileSet set = null;
+ try {
+ set = (TileSet)tilesets.get(selectedRow);
+ } catch (IndexOutOfBoundsException e) {
+ }
+
+ editButton.setEnabled(set != null);
+ removeButton.setEnabled(set != null);
+ saveButton.setEnabled(set != null && set.getSource() != null);
+ embedButton.setEnabled(set != null && set.getSource() != null);
+ }
+}
Property changes on: branches/bjorn/src/tiled/mapeditor/dialogs/TilesetManager.java
___________________________________________________________________
Name: svn:keywords
+ Id
More information about the tiled-commit
mailing list