package net.sf.nmedit.jtheme.component.plaf.mcui;
import java.awt.Image;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import javax.swing.AbstractAction;
import javax.swing.ImageIcon;
import net.sf.nmedit.jpatch.PModule;
import net.sf.nmedit.jpatch.PModuleContainer;
import net.sf.nmedit.jpatch.PModuleDescriptor;
import net.sf.nmedit.jpatch.dnd.PModuleTransferDataWrapper;
import net.sf.nmedit.jtheme.JTException;
import net.sf.nmedit.jtheme.component.JTModuleContainer;
import net.sf.nmedit.jtheme.util.ModuleImageRenderer;
public class InsertModuleAction extends AbstractAction {
private PModuleDescriptor descriptor;
private JTModuleContainer jmc;
public InsertModuleAction(PModuleDescriptor descriptor, JTModuleContainer jmc) {
this.descriptor = descriptor;
this.jmc = jmc;
String name = descriptor.getStringAttribute("fullname");
if (name == null)
name = descriptor.getName();
putValue(NAME, name);
Image iconImage = descriptor.getModules().getImage(descriptor.get16x16IconSource());
if (iconImage != null)
putValue(SMALL_ICON, new ImageIcon(iconImage));
}
public void actionPerformed(ActionEvent e) {
PModuleContainer mc = jmc.getModuleContainer();
ArrayList<PModule> modules = new ArrayList<PModule>();
modules.add(mc.createModule(descriptor));
PModuleTransferDataWrapper tdata =new PModuleTransferDataWrapper(mc, modules, new Point(5, 5));
Image transferImage = null;
try
{
transferImage = ModuleImageRenderer.render(jmc.getContext(), modules.get(0), true);
}
catch (JTException jte)
{
transferImage = null;
}
tdata.setTransferImage(transferImage);
jmc.getUI().startPaste(tdata);
}
}