package com.clearlyspam23.GLE.basic.layers.tile.edit.menu;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
import com.clearlyspam23.GLE.basic.layers.tile.TileLayer;
import com.clearlyspam23.GLE.basic.layers.tile.edit.TileLayerEditManager;
import com.clearlyspam23.GLE.basic.layers.tile.gui.TileLayerSelectionListener;
import com.clearlyspam23.GLE.basic.layers.tile.gui.TileSelection;
import com.clearlyspam23.GLE.edit.LayerMenuItem;
public class AnchorMenuItem extends LayerMenuItem<TileLayer, JMenuItem> implements TileLayerSelectionListener{
private TileLayerEditManager editor;
public AnchorMenuItem(TileLayerEditManager editor) {
super(new JMenuItem("Anchor Selection"));
this.editor = editor;
JMenuItem item = getMenuItem();
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, InputEvent.CTRL_MASK));
item.setEnabled(false);
}
@Override
public void selectionChange(TileLayer layer, TileSelection oldSelection,
TileSelection newSelection) {
getMenuItem().setEnabled(newSelection!=null);
}
public void onHide(TileLayer activeLayer){
activeLayer.removeSelectionListener(this);
}
public void onShow(TileLayer activeLayer){
getMenuItem().setEnabled(activeLayer.getBase().hasSelection());
activeLayer.addSelectionListener(this);
}
@Override
public void performAction(TileLayer layer) {
layer.getBase().anchorSelectionWithAction(editor);
}
}