package org.openpnp.machine.reference.psh;
import java.awt.event.ActionEvent;
import java.util.List;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.Icon;
import org.openpnp.gui.MainFrame;
import org.openpnp.gui.support.Icons;
import org.openpnp.gui.support.MessageBoxes;
import org.openpnp.machine.reference.ReferenceNozzleTip;
import org.openpnp.model.Configuration;
import org.openpnp.spi.Nozzle;
import org.openpnp.spi.NozzleTip;
import org.openpnp.spi.PropertySheetHolder;
import org.openpnp.spi.base.SimplePropertySheetHolder;
public class NozzleTipsPropertySheetHolder extends SimplePropertySheetHolder {
final Nozzle nozzle;
public NozzleTipsPropertySheetHolder(Nozzle nozzle, String title, List<? extends PropertySheetHolder> children,
Icon icon) {
super(title, children, icon);
this.nozzle = nozzle;
}
@Override
public Action[] getPropertySheetHolderActions() {
return new Action[] {newAction};
}
public Action newAction = new AbstractAction() {
{
putValue(SMALL_ICON, Icons.add);
putValue(NAME, "New Nozzle Tip...");
putValue(SHORT_DESCRIPTION, "Create a new nozzle tip.");
}
@Override
public void actionPerformed(ActionEvent arg0) {
Configuration configuration = Configuration.get();
// ClassSelectionDialog<Nozzle> dialog = new ClassSelectionDialog<>(MainFrame.get(),
// "Select Nozzle...", "Please select a Nozzle implemention from the list below.",
// configuration.getMachine().getCompatibleNozzleClasses());
// dialog.setVisible(true);
// Class<? extends Nozzle> cls = dialog.getSelectedClass();
Class<? extends NozzleTip> cls = ReferenceNozzleTip.class;
if (cls == null) {
return;
}
try {
NozzleTip nozzleTip = cls.newInstance();
nozzle.addNozzleTip(nozzleTip);
}
catch (Exception e) {
MessageBoxes.errorBox(MainFrame.get(), "Error", e);
}
}
};
}