From: Matthias T. <mt...@us...> - 2006-03-04 19:51:40
|
Update of /cvsroot/arianne/stendhal/tiled/src/tiled/mapeditor/widget In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13897/tiled/src/tiled/mapeditor/widget Modified Files: TilePalettePanel.java TilesetChooserTabbedPane.java LayerEditPanel.java ToolBar.java Added Files: BrushMenu.java Removed Files: BrushBrowser.java TileButton.java BrushList.java Log Message: * restored delete tile * some restructions concerning brush-ui * removed custom brushes from the user interface (need another ui representation) Index: TilePalettePanel.java =================================================================== RCS file: /cvsroot/arianne/stendhal/tiled/src/tiled/mapeditor/widget/TilePalettePanel.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TilePalettePanel.java 12 Feb 2006 10:38:21 -0000 1.4 --- TilePalettePanel.java 4 Mar 2006 19:51:01 -0000 1.5 *************** *** 30,35 **** import tiled.core.*; import tiled.mapeditor.MapEditor; - import tiled.mapeditor.brush.Brush; - import tiled.mapeditor.brush.MultiTileBrush; import tiled.mapeditor.dialog.PropertiesDialog; import tiled.mapeditor.util.*; --- 30,33 ---- *************** *** 47,53 **** private EventListenerList tileSelectionListeners; /** the currently selected tiles */ ! private List<Tile> selectedTiles; ! /** brush to paint the selected tiles */ ! private MultiTileBrush selectedBrush; /** indicator that the user is drawing a frame to select multiple tiles */ private boolean dragInProgress; --- 45,49 ---- private EventListenerList tileSelectionListeners; /** the currently selected tiles */ ! private List<StatefulTile> selectedTiles; /** indicator that the user is drawing a frame to select multiple tiles */ private boolean dragInProgress; *************** *** 71,76 **** this.mapEditor = mapEditor; tileSelectionListeners = new EventListenerList(); ! selectedTiles = new ArrayList<Tile>(); ! selectedBrush = new MultiTileBrush(); refreshTileProperties(); --- 67,71 ---- this.mapEditor = mapEditor; tileSelectionListeners = new EventListenerList(); ! selectedTiles = new ArrayList<StatefulTile>(); refreshTileProperties(); *************** *** 98,102 **** } ! protected void fireTileSelectionEvent(List<Tile> selectedTiles, Brush brush) { TileSelectionListener[] listeners = tileSelectionListeners.getListeners(TileSelectionListener.class); --- 93,97 ---- } ! protected void fireTileSelectionEvent(List<StatefulTile> selectedTiles) { TileSelectionListener[] listeners = tileSelectionListeners.getListeners(TileSelectionListener.class); *************** *** 104,108 **** return; ! TileSelectionEvent event = new TileSelectionEvent(this, new ArrayList<Tile>(selectedTiles), brush); for (TileSelectionListener listener : listeners) --- 99,103 ---- return; ! TileSelectionEvent event = new TileSelectionEvent(this, new ArrayList<StatefulTile>(selectedTiles)); for (TileSelectionListener listener : listeners) *************** *** 213,223 **** g.setColor(Color.YELLOW); ! for (Tile tile : selectedTiles) { ! int id = tile.getId(); int x = id % tilesPerRow; int y = id / tilesPerRow; ! g.drawRect(x * twidth - 1, y * theight , tile.getWidth() + 1,tile.getHeight() + 1); ! g.drawRect(x * twidth , y * theight + 1, tile.getWidth() - 1,tile.getHeight() - 1); } --- 208,218 ---- g.setColor(Color.YELLOW); ! for (StatefulTile tile : selectedTiles) { ! int id = tile.tile.getId(); int x = id % tilesPerRow; int y = id / tilesPerRow; ! g.drawRect(x * twidth - 1, y * theight , tile.tile.getWidth() + 1,tile.tile.getHeight() + 1); ! g.drawRect(x * twidth , y * theight + 1, tile.tile.getWidth() - 1,tile.tile.getHeight() - 1); } *************** *** 287,291 **** Point point = getMousePosition(); refreshSelectedTiles(new Rectangle(point.x,point.y, 1,1)); ! fireTileSelectionEvent(selectedTiles,selectedBrush); repaint(); Point p = e.getPoint(); --- 282,286 ---- Point point = getMousePosition(); refreshSelectedTiles(new Rectangle(point.x,point.y, 1,1)); ! fireTileSelectionEvent(selectedTiles); repaint(); Point p = e.getPoint(); *************** *** 350,354 **** } refreshSelectedTiles(Util.getRectangle(dragStartPoint, currentDragPoint)); ! fireTileSelectionEvent(selectedTiles,selectedBrush); repaint(); } --- 345,349 ---- } refreshSelectedTiles(Util.getRectangle(dragStartPoint, currentDragPoint)); ! fireTileSelectionEvent(selectedTiles); repaint(); } *************** *** 368,375 **** private void refreshSelectedTiles(Rectangle rect) { - List<Tile> tileList = new ArrayList<Tile>(); - - MultiTileBrush brush = new MultiTileBrush(); - int twidth = tileset.getStandardWidth() + 1; int theight = tileset.getTileHeightMax() + 1; --- 363,366 ---- *************** *** 380,383 **** --- 371,375 ---- maxy += (maxy % theight > 0) ? theight - (maxy % theight) : 0; + List<StatefulTile> statefulTiles = new ArrayList<StatefulTile>(); for (int x = rect.x, brushx = 0; x < maxx ; x += twidth, brushx++) *************** *** 388,398 **** if (tile != null) { ! tileList.add(tile); ! brush.addTile(brushx,brushy,tile); } } } ! selectedTiles = tileList; ! selectedBrush = brush; } --- 380,388 ---- if (tile != null) { ! statefulTiles.add(new StatefulTile(new Point(x/twidth,y/twidth),0,tile)); } } } ! selectedTiles = statefulTiles; } --- BrushBrowser.java DELETED --- --- BrushList.java DELETED --- Index: LayerEditPanel.java =================================================================== RCS file: /cvsroot/arianne/stendhal/tiled/src/tiled/mapeditor/widget/LayerEditPanel.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** LayerEditPanel.java 12 Dec 2005 22:02:44 -0000 1.3 --- LayerEditPanel.java 4 Mar 2006 19:51:01 -0000 1.4 *************** *** 46,51 **** private MiniMapViewer miniMap; ! private BrushBrowser brushBrowser; ! private JTable layerTable; private JSlider opacitySlider; --- 46,50 ---- private MiniMapViewer miniMap; ! private JTable layerTable; private JSlider opacitySlider; *************** *** 127,138 **** layerPanel.add(layerButtons); - JTabbedPane pane = new JTabbedPane(); - pane.add("Layers",layerPanel); - brushBrowser = new BrushBrowser(mapEditor); - pane.add("Brushes",brushBrowser); - setLayout(new BorderLayout()); add(miniMapSp, BorderLayout.NORTH); ! add(pane, BorderLayout.CENTER); } --- 126,132 ---- layerPanel.add(layerButtons); setLayout(new BorderLayout()); add(miniMapSp, BorderLayout.NORTH); ! add(layerPanel, BorderLayout.CENTER); } *************** *** 161,166 **** ((LayerTableModel)layerTable.getModel()).setMap(currentMap); - brushBrowser.setMap(currentMap); - if (currentMap != null) { --- 155,158 ---- Index: TilesetChooserTabbedPane.java =================================================================== RCS file: /cvsroot/arianne/stendhal/tiled/src/tiled/mapeditor/widget/TilesetChooserTabbedPane.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** TilesetChooserTabbedPane.java 12 Feb 2006 10:38:21 -0000 1.3 --- TilesetChooserTabbedPane.java 4 Mar 2006 19:51:01 -0000 1.4 *************** *** 103,107 **** public void tileSelected(TileSelectionEvent e) { ! mapEditor.setCurrentTiles(e); } --- 103,107 ---- public void tileSelected(TileSelectionEvent e) { ! mapEditor.setCurrentTiles(e.getTiles()); } --- TileButton.java DELETED --- Index: ToolBar.java =================================================================== RCS file: /cvsroot/arianne/stendhal/tiled/src/tiled/mapeditor/widget/ToolBar.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ToolBar.java 10 Dec 2005 21:48:39 -0000 1.2 --- ToolBar.java 4 Mar 2006 19:51:01 -0000 1.3 *************** *** 15,18 **** --- 15,20 ---- import java.awt.Dimension; import java.awt.Insets; + import java.awt.event.ActionEvent; + import java.awt.event.ActionListener; import javax.swing.AbstractButton; *************** *** 23,26 **** --- 25,29 ---- import javax.swing.JToolBar; + import tiled.core.Map; import tiled.mapeditor.MapEditor; import tiled.mapeditor.util.MapEventAdapter; *************** *** 31,35 **** * @author Matthias Totz <mt...@us...> */ ! public class ToolBar extends JToolBar { private static final long serialVersionUID = -7604870611719476825L; --- 34,38 ---- * @author Matthias Totz <mt...@us...> */ ! public class ToolBar extends JToolBar implements ActionListener { private static final long serialVersionUID = -7604870611719476825L; *************** *** 49,53 **** private AbstractButton moveButton; ! private AbstractButton objectMoveButton; public ToolBar(MapEditor mapEditor, MapEventAdapter mapEventAdapter) --- 52,56 ---- private AbstractButton moveButton; ! private BrushMenu brushMenu; public ToolBar(MapEditor mapEditor, MapEventAdapter mapEventAdapter) *************** *** 63,67 **** Icon iconEyed = MapEditor.loadIcon("resources/gimp-tool-color-picker-22.png"); Icon iconMarquee = MapEditor.loadIcon("resources/gimp-tool-rect-select-22.png"); - Icon iconMoveObject = MapEditor.loadIcon("resources/gimp-tool-object-move-22.png"); paintButton = createToggleButton(iconPaint, "paint", "Paint"); --- 66,69 ---- *************** *** 71,75 **** marqueeButton = createToggleButton(iconMarquee, "marquee", "Select"); moveButton = createToggleButton(iconMove, "move", "Move layer"); ! objectMoveButton = createToggleButton(iconMoveObject, "moveobject", "Move Object"); mapEventAdapter.addListener(moveButton); --- 73,77 ---- marqueeButton = createToggleButton(iconMarquee, "marquee", "Select"); moveButton = createToggleButton(iconMove, "move", "Move layer"); ! brushMenu = new BrushMenu(mapEditor); mapEventAdapter.addListener(moveButton); *************** *** 79,83 **** mapEventAdapter.addListener(eyedButton); mapEventAdapter.addListener(marqueeButton); - mapEventAdapter.addListener(objectMoveButton); setFloatable(false); --- 81,84 ---- *************** *** 89,97 **** add(marqueeButton); add(Box.createRigidArea(new Dimension(5, 5))); - //TODO: put this back when working... - //add(objectMoveButton); - //add(Box.createRigidArea(new Dimension(0, 5))); add(new TButton(mapEditor.zoomInAction)); add(new TButton(mapEditor.zoomOutAction)); add(new MemMonitor()); --- 90,97 ---- add(marqueeButton); add(Box.createRigidArea(new Dimension(5, 5))); add(new TButton(mapEditor.zoomInAction)); add(new TButton(mapEditor.zoomOutAction)); + add(Box.createRigidArea(new Dimension(5, 5))); + add(brushMenu); add(new MemMonitor()); *************** *** 114,118 **** button.setMargin(new Insets(0, 0, 0, 0)); button.setActionCommand(command); ! button.addActionListener(mapEditor); if (tt != null) { button.setToolTipText(tt); --- 114,118 ---- button.setMargin(new Insets(0, 0, 0, 0)); button.setActionCommand(command); ! button.addActionListener(this); if (tt != null) { button.setToolTipText(tt); *************** *** 133,139 **** marqueeButton.setSelected(state == MapEditor.PS_MARQUEE); moveButton.setSelected(state == MapEditor.PS_MOVE); - objectMoveButton.setSelected(state == MapEditor.PS_MOVEOBJ); } --- 133,158 ---- marqueeButton.setSelected(state == MapEditor.PS_MARQUEE); moveButton.setSelected(state == MapEditor.PS_MOVE); } + /** sets the map */ + public void setMap(Map map) + { + brushMenu.setMap(map); + } + + /** action handler for the buttons */ + public void actionPerformed(ActionEvent e) + { + String command = e.getActionCommand(); + if (command.equals("erase")) + { + mapEditor.toggleDeleteTile(true); + } else + if (command.equals("paint")) + { + mapEditor.toggleDeleteTile(false); + } + + } --- NEW FILE: BrushMenu.java --- /** * */ package tiled.mapeditor.widget; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import tiled.core.Map; import tiled.core.TileGroup; import tiled.mapeditor.MapEditor; import tiled.mapeditor.brush.Brush; import tiled.mapeditor.brush.MultiTileBrush; import tiled.mapeditor.brush.ShapeBrush; import tiled.mapeditor.brush.TileGroupBrush; import tiled.mapeditor.util.MapChangeListener; import tiled.mapeditor.util.MapChangedEvent; /** * Brush Menu * @author mtotz */ public class BrushMenu extends JComboBox implements MapChangeListener { private static final long serialVersionUID = 1L; /** the map */ private Map map; /** the mapeditor instance */ private MapEditor mapEditor; /** */ private List<BrushWrapper> defaultBrushes; public BrushMenu(MapEditor mapEditor) { this.mapEditor = mapEditor; defaultBrushes = new ArrayList<BrushWrapper>(); defaultBrushes.add(new BrushWrapper(new MultiTileBrush())); defaultBrushes.add(new BrushWrapper(ShapeBrush.makeRectBrush(1,1))); defaultBrushes.add(new BrushWrapper(ShapeBrush.makeRectBrush(2,2))); defaultBrushes.add(new BrushWrapper(ShapeBrush.makeRectBrush(4,4))); defaultBrushes.add(new BrushWrapper(ShapeBrush.makeRectBrush(8,8))); addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Object o = getSelectedItem(); if (o instanceof BrushWrapper) { BrushMenu.this.mapEditor.setBrush(((BrushWrapper)o).brush); } } }); } /** sets the map */ public void setMap(Map map) { this.map = map; if (map != null) { map.addMapChangeListener(this); updateBrushes(); } } /** refreshes the brush list once the map changes */ public void mapChanged(MapChangedEvent e) { if (e.getType() != MapChangedEvent.Type.BRUSHES) return; updateBrushes(); } /** updates the brush list */ private void updateBrushes() { List<TileGroup> groupList = map.getUserBrushes(); List<BrushWrapper> brushes = new ArrayList<BrushWrapper>(); brushes.addAll(defaultBrushes); for (TileGroup group : groupList) { brushes.add(new BrushWrapper(new TileGroupBrush(group))); } setModel(new DefaultComboBoxModel(brushes.toArray(new BrushWrapper[brushes.size()]))); } /** wraps a brush to create a nice toString() (for the selection box) */ private class BrushWrapper { public Brush brush; public BrushWrapper(Brush brush) { this.brush = brush; } /** */ public String toString() { return brush.getName(); } } } |