/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package nl.fontys.sofa.limo.view; import java.awt.event.ActionEvent; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.Action; import org.netbeans.api.sendopts.CommandException; import org.netbeans.spi.sendopts.Env; import org.netbeans.spi.sendopts.Option; import org.netbeans.spi.sendopts.OptionProcessor; import org.openide.awt.Actions; import org.openide.util.lookup.ServiceProvider; /** * * @author nilsh */ @ServiceProvider(service = OptionProcessor.class) public class StartupOptionProcessor extends OptionProcessor { private static final Logger logger = Logger.getLogger(StartupOptionProcessor.class.getName()); private final Option openOption = Option.defaultArguments(); private final Option openOption2 = Option.additionalArguments('o', "open"); @Override protected Set<Option> getOptions() { HashSet set = new HashSet(); set.add(openOption); set.add(openOption2); return set; } @Override protected void process(Env env, Map<Option, String[]> values) throws CommandException { List<String> filenameList = new ArrayList<>(); Object obj = values.get(openOption); if (obj != null) { filenameList.addAll(Arrays.asList((String[]) obj)); } obj = values.get(openOption2); if (obj != null) { filenameList.addAll(Arrays.asList((String[]) obj)); } for (String filenameList1 : filenameList) { File file = new File(filenameList1); if (!file.isAbsolute()) { file = new File(env.getCurrentDirectory(), filenameList1); } logger.log(Level.INFO, "Open file: {0}", file.getPath()); String path = file.getAbsolutePath(); if (path.endsWith(".lef")) { ActionEvent e = new ActionEvent(this, ActionEvent.ACTION_FIRST, path); Action action = Actions.forID("Master Data", "nl.fontys.sofa.limo.view.wizard.importer.ImportWizardAction"); action.actionPerformed(e); continue; } if (path.endsWith(".lsc")) { ActionEvent e = new ActionEvent(this, ActionEvent.ACTION_FIRST, path); Action action = Actions.forID("Window", "nl.fontys.sofa.limo.view.action.OpenChainAction"); action.actionPerformed(e); } } } }