package com.jsonde.gui.action; import com.jsonde.api.configuration.AgentConfigurationMessage; import com.jsonde.client.Client; import com.jsonde.gui.Main; import com.jsonde.gui.configuration.SessionConfiguration; import com.jsonde.gui.configuration.SessionConfigurationException; import com.jsonde.gui.dialog.project.FieldsPanel; import com.jsonde.gui.dialog.project.NewProjectDialog; import com.jsonde.gui.sdedit.SdEditUIAdapter; import net.sf.sdedit.icons.Icons; import javax.swing.*; import java.awt.event.ActionEvent; public class NewProjectAction extends AbstractAction { private SdEditUIAdapter sdEditUIAdapter; public NewProjectAction(SdEditUIAdapter sdEditUIAdapter) { this.sdEditUIAdapter = sdEditUIAdapter; } { putValue(Action.SMALL_ICON, new ImageIcon( Icons.class.getResource("new.png") )); putValue(Action.NAME, "New Project"); putValue(Action.SHORT_DESCRIPTION, "Create a new jSonde Project"); } public void actionPerformed(ActionEvent e) { NewProjectDialog newProjectDialog = new NewProjectDialog(); if (newProjectDialog.showDialog()) { FieldsPanel fieldsPanel = newProjectDialog.getFieldsPanel(); String databaseFileName = fieldsPanel.getProjectFilesLocation() + System.getProperty("file.separator") + fieldsPanel.getProjectName(); String host = fieldsPanel.getAgentHost(); int port = Integer.parseInt(fieldsPanel.getAgentPort()); Client client = new Client(databaseFileName, host, port); client.start(); SessionConfiguration sessionConfiguration = new SessionConfiguration(); sessionConfiguration.setDatabaseFileName(databaseFileName); try { sessionConfiguration.save(databaseFileName + ".jss"); } catch (SessionConfigurationException e1) { Main.getInstance().processException(e1); } AgentConfigurationMessage agentConfigurationMessage = new AgentConfigurationMessage(); agentConfigurationMessage.setClassFilters( newProjectDialog.getFiltersPanel().getClassFilters()); client.sendMessage(agentConfigurationMessage); sdEditUIAdapter.setClient(client); } } }