package com.clearlyspam23.GLE.basic.layers.tile; import java.awt.Button; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import com.clearlyspam23.GLE.Template; import com.clearlyspam23.GLE.basic.layers.tile.edit.menu.GridMenuItem; import com.clearlyspam23.GLE.basic.layers.tile.gui.TilesetLoadDialog; import com.clearlyspam23.GLE.edit.EditorItems; import com.clearlyspam23.GLE.edit.LayerMenuItem; import com.clearlyspam23.GLE.level.Layer; import com.clearlyspam23.GLE.level.Level; import com.clearlyspam23.GLE.util.Utility; public class TileEditorItems extends EditorItems<TileLayer> { private TilesetLoadDialog loadDialog; public TileEditorItems(TileLayerDefinition def) { super(def); loadDialog = new TilesetLoadDialog(); } @Override public List<JMenu> getMenuItems(final Template template) {JMenu menu = new JMenu("Tilesets"); JMenuItem item = new JMenuItem("Tileset Manager"); final TilesetManager manager = (TilesetManager) template.getTemplateData(this.getDef(), "tilesets"); item.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent arg0) { loadDialog.showDialog(manager); ((TileLayerDefinition)getDef()).updateTilesets(template); template.save(); boolean b = true; for(Level l : template.getData().getOpenLevels()){ for(Layer<?> layer : l.getLayers()){ if(layer instanceof TileLayer){ b = b && ((TileLayer)layer).refreshTilesets(); } } } if(!b){ JOptionPane.showMessageDialog(template.getData().getFrame(), "Unable to reload every tile" + Utility.NEWLINE + "Some tiles have been removed"); } } }); menu.add(item); ArrayList<JMenu> ans = new ArrayList<JMenu>(); ans.add(menu); return ans; } @Override public List<Button> getButtonBarItems(Template template) { return new ArrayList<Button>(); } }