Advertisement
Guest User

Untitled

a guest
May 5th, 2015
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.96 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package gui;
  7.  
  8. import agentsandmissions.Agent;
  9. import agentsandmissions.AgentManager;
  10. import agentsandmissions.AgentManagerImpl;
  11. import agentsandmissions.Mission;
  12. import agentsandmissions.MissionManager;
  13. import agentsandmissions.MissionManagerImpl;
  14. import agentsandmissions.SecretAgencyManager;
  15. import agentsandmissions.SecretAgencyManagerImpl;
  16. import agentsandmissions.Status;
  17. import java.awt.Dialog;
  18. import java.io.FileNotFoundException;
  19. import java.io.FileReader;
  20. import java.io.IOException;
  21. import java.util.ArrayList;
  22. import java.util.Date;
  23. import java.util.List;
  24. import java.util.Properties;
  25. import java.util.ResourceBundle;
  26. import javax.sql.DataSource;
  27. import javax.swing.JFrame;
  28. import javax.swing.JOptionPane;
  29. import javax.swing.SwingWorker;
  30. import org.apache.commons.dbcp2.BasicDataSource;
  31.  
  32. /**
  33. *
  34. * @author Vladimir Voda
  35. */
  36. public class swing extends javax.swing.JFrame {
  37.  
  38. private ResourceBundle res = null;
  39.  
  40. private AgentManager agentManager = null;
  41. private MissionManager missionManager = null;
  42. private SecretAgencyManager agencyManager = null;
  43.  
  44. private AgentTableModel agentModel = null;
  45. private MissionTableModel missionModel = null;
  46. private AgencyModel agencyModel = null;
  47.  
  48.  
  49.  
  50.  
  51. private DataSource dataSource = null;
  52. /**
  53. * Creates new form swing
  54. */
  55. public swing() {
  56. initComponents();
  57. res = ResourceBundle.getBundle("gui/Bundle");
  58. agentModel = (AgentTableModel) jTableAgent.getModel();
  59. missionModel = (MissionTableModel) jTableMissions.getModel();
  60. agencyModel = (AgencyModel) jTableAgency.getModel();
  61.  
  62. dataSource = getDatabase();
  63. agentManager = new AgentManagerImpl(dataSource);
  64. missionManager = new MissionManagerImpl(dataSource);
  65. agencyManager = new SecretAgencyManagerImpl(dataSource);
  66.  
  67.  
  68. for (Agent agent : agentManager.findAllAgents()) {
  69. agentModel.addAgent(agent);
  70. }
  71.  
  72. for (Mission mission : missionManager.findAllMissions()) {
  73. missionModel.addMission(mission);
  74. List<Agent> agentsWithMission = agencyManager.findAllAgentsWithMission(mission);
  75. if(!agentsWithMission.isEmpty()) {
  76. for (Agent agent : agentsWithMission) {
  77. agencyModel.assign(mission, agent);
  78. }
  79. }
  80.  
  81. }
  82.  
  83.  
  84.  
  85.  
  86. }
  87.  
  88. private DataSource getDatabase() {
  89.  
  90. BasicDataSource bds = new BasicDataSource();
  91.  
  92. try {
  93. //bds.setUrl("jdbc:derby:memory:missionmngr-test;create=true");
  94. Properties property = new Properties();
  95. FileReader reader = new FileReader("src\\sql\\db.properties");
  96.  
  97. property.load(reader);
  98. String url = property.getProperty("url");
  99. String user = property.getProperty("user");
  100. String password = property.getProperty("password");
  101.  
  102. bds.setUrl(url);
  103. bds.setUsername(user);
  104. bds.setPassword(password);
  105. } catch (FileNotFoundException ex) {
  106. //
  107. } catch (IOException ex) {
  108. // ludek
  109. }
  110.  
  111. return bds;
  112. }
  113.  
  114. /**
  115. * This method is called from within the constructor to initialize the form.
  116. * WARNING: Do NOT modify this code. The content of this method is always
  117. * regenerated by the Form Editor.
  118. */
  119. @SuppressWarnings("unchecked")
  120. // <editor-fold defaultstate="collapsed" desc="Generated Code">
  121. private void initComponents() {
  122.  
  123. jScrollPane1 = new javax.swing.JScrollPane();
  124. jTableAgent = new javax.swing.JTable();
  125. jButtonAddAgent = new javax.swing.JButton();
  126. jButtonEditAgent = new javax.swing.JButton();
  127. jButtonDeleteAgent = new javax.swing.JButton();
  128. jScrollPane2 = new javax.swing.JScrollPane();
  129. jTableMissions = new javax.swing.JTable();
  130. jButtonAddMission = new javax.swing.JButton();
  131. jButtonEditMission = new javax.swing.JButton();
  132. jButtonDeleteMission = new javax.swing.JButton();
  133. jLabel1 = new javax.swing.JLabel();
  134. jScrollPane3 = new javax.swing.JScrollPane();
  135. jTableAgency = new javax.swing.JTable();
  136. jButtonAssign = new javax.swing.JButton();
  137. jButton1 = new javax.swing.JButton();
  138.  
  139. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  140.  
  141. jTableAgent.setModel(new AgentTableModel());
  142. jTableAgent.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
  143. jScrollPane1.setViewportView(jTableAgent);
  144.  
  145. java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("gui/Bundle"); // NOI18N
  146. jButtonAddAgent.setText(bundle.getString("swing.jButtonAddAgent.text")); // NOI18N
  147. jButtonAddAgent.addActionListener(new java.awt.event.ActionListener() {
  148. public void actionPerformed(java.awt.event.ActionEvent evt) {
  149. jButtonAddAgentActionPerformed(evt);
  150. }
  151. });
  152.  
  153. jButtonEditAgent.setText(bundle.getString("swing.jButtonEditAgent.text")); // NOI18N
  154. jButtonEditAgent.addActionListener(new java.awt.event.ActionListener() {
  155. public void actionPerformed(java.awt.event.ActionEvent evt) {
  156. jButtonEditAgentActionPerformed(evt);
  157. }
  158. });
  159.  
  160. jButtonDeleteAgent.setText(bundle.getString("swing.jButtonDeleteAgent.text")); // NOI18N
  161. jButtonDeleteAgent.addActionListener(new java.awt.event.ActionListener() {
  162. public void actionPerformed(java.awt.event.ActionEvent evt) {
  163. jButtonDeleteAgentActionPerformed(evt);
  164. }
  165. });
  166.  
  167. jTableMissions.setModel(new MissionTableModel());
  168. jTableMissions.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
  169. jScrollPane2.setViewportView(jTableMissions);
  170.  
  171. jButtonAddMission.setText(bundle.getString("swing.jButtonAddMission.text")); // NOI18N
  172. jButtonAddMission.addActionListener(new java.awt.event.ActionListener() {
  173. public void actionPerformed(java.awt.event.ActionEvent evt) {
  174. jButtonAddMissionActionPerformed(evt);
  175. }
  176. });
  177.  
  178. jButtonEditMission.setText(bundle.getString("swing.jButtonEditMission.text")); // NOI18N
  179. jButtonEditMission.addActionListener(new java.awt.event.ActionListener() {
  180. public void actionPerformed(java.awt.event.ActionEvent evt) {
  181. jButtonEditMissionActionPerformed(evt);
  182. }
  183. });
  184.  
  185. jButtonDeleteMission.setText(bundle.getString("swing.jButtonDeleteMission.text")); // NOI18N
  186. jButtonDeleteMission.addActionListener(new java.awt.event.ActionListener() {
  187. public void actionPerformed(java.awt.event.ActionEvent evt) {
  188. jButtonDeleteMissionActionPerformed(evt);
  189. }
  190. });
  191.  
  192. jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
  193. jLabel1.setText(bundle.getString("swing.jLabel1.text")); // NOI18N
  194.  
  195. jTableAgency.setModel(new AgencyModel());
  196. jTableAgency.setRowSelectionAllowed(false);
  197. jScrollPane3.setViewportView(jTableAgency);
  198.  
  199. jButtonAssign.setText(bundle.getString("swing.jButtonAssign.text")); // NOI18N
  200. jButtonAssign.addActionListener(new java.awt.event.ActionListener() {
  201. public void actionPerformed(java.awt.event.ActionEvent evt) {
  202. jButtonAssignActionPerformed(evt);
  203. }
  204. });
  205.  
  206. jButton1.setText(bundle.getString("swing.jButton1.text")); // NOI18N
  207. jButton1.addActionListener(new java.awt.event.ActionListener() {
  208. public void actionPerformed(java.awt.event.ActionEvent evt) {
  209. jButton1ActionPerformed(evt);
  210. }
  211. });
  212.  
  213. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  214. getContentPane().setLayout(layout);
  215. layout.setHorizontalGroup(
  216. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  217. .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
  218. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  219. .addComponent(jButtonAssign, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE)
  220. .addGap(186, 186, 186))
  221. .addGroup(layout.createSequentialGroup()
  222. .addContainerGap()
  223. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  224. .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  225. .addComponent(jScrollPane1)
  226. .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING)
  227. .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.TRAILING)
  228. .addGroup(layout.createSequentialGroup()
  229. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  230. .addGroup(layout.createSequentialGroup()
  231. .addComponent(jButtonAddAgent, javax.swing.GroupLayout.PREFERRED_SIZE, 208, javax.swing.GroupLayout.PREFERRED_SIZE)
  232. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  233. .addComponent(jButtonEditAgent, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
  234. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  235. .addComponent(jButtonDeleteAgent, javax.swing.GroupLayout.PREFERRED_SIZE, 194, javax.swing.GroupLayout.PREFERRED_SIZE))
  236. .addGroup(layout.createSequentialGroup()
  237. .addComponent(jButtonAddMission, javax.swing.GroupLayout.PREFERRED_SIZE, 208, javax.swing.GroupLayout.PREFERRED_SIZE)
  238. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  239. .addComponent(jButtonEditMission, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
  240. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  241. .addComponent(jButtonDeleteMission, javax.swing.GroupLayout.PREFERRED_SIZE, 194, javax.swing.GroupLayout.PREFERRED_SIZE)))
  242. .addGap(0, 0, Short.MAX_VALUE)))
  243. .addContainerGap())
  244. .addGroup(layout.createSequentialGroup()
  245. .addGap(196, 196, 196)
  246. .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 240, javax.swing.GroupLayout.PREFERRED_SIZE)
  247. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  248. );
  249. layout.setVerticalGroup(
  250. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  251. .addGroup(layout.createSequentialGroup()
  252. .addContainerGap()
  253. .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
  254. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  255. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  256. .addComponent(jButtonAddAgent)
  257. .addComponent(jButtonEditAgent, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  258. .addComponent(jButtonDeleteAgent, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  259. .addGap(18, 18, 18)
  260. .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
  261. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  262. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  263. .addComponent(jButtonAddMission)
  264. .addComponent(jButtonEditMission, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  265. .addComponent(jButtonDeleteMission, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  266. .addGap(18, 18, 18)
  267. .addComponent(jButtonAssign)
  268. .addGap(26, 26, 26)
  269. .addComponent(jLabel1)
  270. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  271. .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 105, javax.swing.GroupLayout.PREFERRED_SIZE)
  272. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  273. .addComponent(jButton1)
  274. .addGap(17, 17, 17))
  275. );
  276.  
  277. pack();
  278. }// </editor-fold>
  279. private AddAgentSwingWorker addAgentSwingWorker;
  280.  
  281. private class AddAgentSwingWorker extends SwingWorker<Void,Void>
  282. {
  283.  
  284. @Override
  285. protected Void doInBackground() throws Exception {
  286. AgentDialog dialog = new AgentDialog(new JFrame(), rootPaneCheckingEnabled);
  287. dialog.setVisible(true);
  288.  
  289. Agent agent = dialog.getAgent();
  290.  
  291. if (agent != null)
  292. {
  293. long id = agentManager.addAgent(agent);
  294. agent.setId(id);
  295. agentModel.addAgent(agent);
  296. }
  297.  
  298. if(!dialog.isVisible()) dialog.dispose();
  299. return null;
  300. }
  301.  
  302. @Override
  303. protected void done()
  304. {
  305. jButtonAddAgent.setEnabled(true);
  306. addAgentSwingWorker = null;
  307. }
  308.  
  309. }
  310.  
  311.  
  312. private void jButtonAddAgentActionPerformed(java.awt.event.ActionEvent evt) {
  313.  
  314. if (addAgentSwingWorker != null)
  315. throw new IllegalStateException("Agent adding in progress");
  316. jButtonAddAgent.setEnabled(false);
  317. addAgentSwingWorker = new AddAgentSwingWorker();
  318. addAgentSwingWorker.execute();
  319. }
  320.  
  321. private void checkInputParameters(String message) {
  322. JOptionPane.showMessageDialog(new JFrame(), message, res.getString("Error"), JOptionPane.ERROR_MESSAGE);
  323. }
  324.  
  325. private EditAgentSwingWorker editAgentSwingWorker;
  326.  
  327. private class EditAgentSwingWorker extends SwingWorker<Void,Void>
  328. {
  329.  
  330. @Override
  331. protected Void doInBackground() throws Exception {
  332. if(jTableAgent.getSelectedRow() == -1)
  333. {
  334. checkInputParameters(res.getString("swing.AgentEditError"));
  335. return null;
  336. }
  337.  
  338. AgentDialog dialog = new AgentDialog(new JFrame(), rootPaneCheckingEnabled);
  339. int index = jTableAgent.getSelectedRow();
  340. Agent agent = agentModel.getAgentAtIndex(index);
  341. dialog.setAgent(agent);
  342. dialog.setVisible(true);
  343.  
  344. agentManager.updateAgent(agent);
  345. agentModel.updateAgent(agent, index);
  346. return null;
  347. }
  348.  
  349. @Override
  350. protected void done()
  351. {
  352. jButtonEditAgent.setEnabled(true);
  353. addAgentSwingWorker = null;
  354. }
  355.  
  356. }
  357.  
  358. private void jButtonEditAgentActionPerformed(java.awt.event.ActionEvent evt) {
  359.  
  360. if (editAgentSwingWorker != null)
  361. throw new IllegalStateException("Agent editing in progress");
  362. jButtonEditAgent.setEnabled(false);
  363. editAgentSwingWorker = new EditAgentSwingWorker();
  364. editAgentSwingWorker.execute();
  365.  
  366. }
  367.  
  368. private DeleteAgentSwingWorker deleteAgentSwingWorker;
  369.  
  370. private class DeleteAgentSwingWorker extends SwingWorker<Void,Void>
  371. {
  372.  
  373. @Override
  374. protected Void doInBackground() throws Exception {
  375. if(jTableAgent.getSelectedRow() == -1)
  376. {
  377. checkInputParameters(res.getString("swing.AgentDeleteError"));
  378. return null;
  379. }
  380. int index = jTableAgent.getSelectedRow();
  381. Agent agent = agentModel.getAgentAtIndex(index);
  382.  
  383. // Kontrola prirazeni agenta v misi
  384. if(agencyModel.IsAgentInAnyMission(agent)) {
  385. checkInputParameters("Agent is assigned in any mission");
  386. return null;
  387. }
  388.  
  389. agentManager.removeAgent(agent);
  390. agentModel.removeAgent(index);
  391. return null;
  392. }
  393.  
  394. @Override
  395. protected void done()
  396. {
  397. jButtonDeleteAgent.setEnabled(true);
  398. deleteAgentSwingWorker = null;
  399. }
  400.  
  401. }
  402.  
  403. private void jButtonDeleteAgentActionPerformed(java.awt.event.ActionEvent evt) {
  404. if (deleteAgentSwingWorker != null)
  405. throw new IllegalStateException("Agent deleting in progress");
  406. jButtonDeleteAgent.setEnabled(false);
  407. deleteAgentSwingWorker = new DeleteAgentSwingWorker();
  408. deleteAgentSwingWorker.execute();
  409.  
  410. }
  411.  
  412.  
  413. private AddMissionSwingWorker addMissionSwingWorker;
  414.  
  415. private class AddMissionSwingWorker extends SwingWorker<Void,Void>
  416. {
  417.  
  418. @Override
  419. protected Void doInBackground() throws Exception {
  420. MissionDialog dialog = new MissionDialog(new JFrame(), rootPaneCheckingEnabled);
  421. dialog.setVisible(true);
  422.  
  423. Mission mission = dialog.getMission();
  424. if (mission != null)
  425. {
  426.  
  427. long id = missionManager.createMission(mission);
  428. missionModel.addMission(mission);
  429. }
  430.  
  431. if(!dialog.isVisible()) dialog.dispose();
  432. return null;
  433. }
  434.  
  435. @Override
  436. protected void done()
  437. {
  438. jButtonAddMission.setEnabled(true);
  439. addMissionSwingWorker = null;
  440. }
  441.  
  442. }
  443. private void jButtonAddMissionActionPerformed(java.awt.event.ActionEvent evt) {
  444. if (addMissionSwingWorker != null)
  445. throw new IllegalStateException("swing.MissionEditError");
  446. jButtonAddMission.setEnabled(false);
  447. addMissionSwingWorker = new AddMissionSwingWorker();
  448. addMissionSwingWorker.execute();
  449.  
  450. }
  451.  
  452. private EditMissionSwingWorker editMissionSwingWorker;
  453.  
  454. private class EditMissionSwingWorker extends SwingWorker<Void,Void>
  455. {
  456.  
  457. @Override
  458. protected Void doInBackground() throws Exception {
  459. if(jTableMissions.getSelectedRow() == -1)
  460. {
  461. checkInputParameters(res.getString("swing.MissionEditError"));
  462. return null;
  463. }
  464.  
  465. MissionDialog dialog = new MissionDialog(new JFrame(), rootPaneCheckingEnabled);
  466. int index = jTableMissions.getSelectedRow();
  467. Mission mission = missionModel.getMissionAtIndex(index);
  468. dialog.setMission(mission);
  469. dialog.setVisible(true);
  470.  
  471. missionManager.updateMission(mission);
  472. missionModel.updateMission(mission, index);
  473.  
  474.  
  475.  
  476. if(!dialog.isVisible()) dialog.dispose();
  477. return null;
  478. }
  479.  
  480. @Override
  481. protected void done()
  482. {
  483. jButtonEditMission.setEnabled(true);
  484. editMissionSwingWorker = null;
  485. }
  486.  
  487. }
  488.  
  489. private void jButtonEditMissionActionPerformed(java.awt.event.ActionEvent evt) {
  490. if (editMissionSwingWorker != null)
  491. throw new IllegalStateException("Mission editing in progress");
  492. jButtonEditMission.setEnabled(false);
  493. editMissionSwingWorker = new EditMissionSwingWorker();
  494. editMissionSwingWorker.execute();
  495. }
  496.  
  497.  
  498. private DeleteMissionSwingWorker deleteMissionSwingWorker;
  499.  
  500. private class DeleteMissionSwingWorker extends SwingWorker<Void,Void>
  501. {
  502.  
  503. @Override
  504. protected Void doInBackground() throws Exception {
  505. if(jTableMissions.getSelectedRow() == -1)
  506. {
  507. checkInputParameters(res.getString("swing.MissionDeleteError"));
  508. return null;
  509. }
  510. int index = jTableMissions.getSelectedRow();
  511. Mission mission = missionModel.getMissionAtIndex(index);
  512.  
  513. // Kontrola prirazeni agenta v misi
  514. for(Agent agent : agentManager.findAllAgents()) {
  515. if(agencyModel.IsAgentInAnyMission(agent))
  516. {
  517. checkInputParameters("Mission has assigned agents");
  518. return null;
  519. }
  520. }
  521.  
  522. missionManager.removeMission(mission);
  523. missionModel.removeMission(index);
  524. return null;
  525. }
  526.  
  527. @Override
  528. protected void done()
  529. {
  530. jButtonDeleteMission.setEnabled(true);
  531. deleteMissionSwingWorker = null;
  532. }
  533.  
  534. }
  535.  
  536. private void jButtonDeleteMissionActionPerformed(java.awt.event.ActionEvent evt) {
  537. if (deleteMissionSwingWorker != null)
  538. throw new IllegalStateException("Mission deleting in progress");
  539. jButtonDeleteMission.setEnabled(false);
  540. deleteMissionSwingWorker = new DeleteMissionSwingWorker();
  541. deleteMissionSwingWorker.execute();
  542. }
  543.  
  544. private AssignSwingWorker assignSwingWorker;
  545.  
  546. private class AssignSwingWorker extends SwingWorker<Void,Void>
  547. {
  548.  
  549. @Override
  550. protected Void doInBackground() throws Exception {
  551. if(jTableAgent.getSelectedRow() == -1 || jTableMissions.getSelectedRow() == -1) {
  552. checkInputParameters(res.getString("swing.AssignError"));
  553. return null;
  554. }
  555.  
  556. int missionIndex = jTableMissions.getSelectedRow();
  557. Mission mission = missionModel.getMissionAtIndex(missionIndex);
  558.  
  559. int agentIndex = jTableAgent.getSelectedRow();
  560. Agent agent = agentModel.getAgentAtIndex(agentIndex);
  561.  
  562. if (agencyModel.IsAgentInAnyMission(agent))
  563. {
  564. checkInputParameters(res.getString("swing.AssignAllreadyAssignedError"));
  565. return null;
  566. }
  567.  
  568. agencyManager.assignAgentToMission(agent, mission);
  569. agencyModel.assign(mission, agent);
  570. return null;
  571. }
  572.  
  573. @Override
  574. protected void done()
  575. {
  576. jButtonAssign.setEnabled(true);
  577. assignSwingWorker = null;
  578. }
  579.  
  580. }
  581.  
  582. private void jButtonAssignActionPerformed(java.awt.event.ActionEvent evt) {
  583. if (assignSwingWorker != null)
  584. throw new IllegalStateException("Agent assigning to mission in progress");
  585. jButtonAssign.setEnabled(false);
  586. assignSwingWorker = new AssignSwingWorker();
  587. assignSwingWorker.execute();
  588.  
  589.  
  590. }
  591.  
  592. private DeleteAssignSwingWorker deleteAssignSwingWorker;
  593.  
  594. private class DeleteAssignSwingWorker extends SwingWorker<Void,Void>
  595. {
  596.  
  597. @Override
  598. protected Void doInBackground() throws Exception {
  599. if(jTableMissions.getSelectedRow() == -1 || jTableAgent.getSelectedRow() == -1) {
  600. checkInputParameters(res.getString("swing.UnassignError"));
  601. return null;
  602. }
  603.  
  604. int missionIndex = jTableMissions.getSelectedRow();
  605. Mission mission = missionModel.getMissionAtIndex(missionIndex);
  606.  
  607. int agentIndex = jTableAgent.getSelectedRow();
  608. Agent agent = agentModel.getAgentAtIndex(agentIndex);
  609.  
  610. if (!agencyModel.IsMissionInAgency(mission))
  611. {
  612. checkInputParameters(res.getString("swing.UnassignNoAgentError"));
  613. return null;
  614. }
  615. if (!agencyModel.IsAgentInMission(agent, mission))
  616. {
  617. checkInputParameters(res.getString("swing.UnassignAgentNotInMissionError"));
  618. return null;
  619. }
  620.  
  621. agencyManager.removeAgentFromMission(agent, mission);
  622. agencyModel.remove(agent, mission);
  623. return null;
  624. }
  625.  
  626. @Override
  627. protected void done()
  628. {
  629. jButton1.setEnabled(true);
  630. deleteAssignSwingWorker = null;
  631. }
  632.  
  633. }
  634.  
  635. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  636. if (deleteAssignSwingWorker != null)
  637. throw new IllegalStateException("Removing assign of agent to mission in progress");
  638. jButton1.setEnabled(false);
  639. deleteAssignSwingWorker = new DeleteAssignSwingWorker();
  640. deleteAssignSwingWorker.execute();
  641.  
  642. }
  643.  
  644.  
  645.  
  646.  
  647. /**
  648. * @param args the command line arguments
  649. */
  650. public static void main(String args[]) {
  651. /* Set the Nimbus look and feel */
  652. //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
  653. /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
  654. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
  655. */
  656. try {
  657. for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  658. if ("Nimbus".equals(info.getName())) {
  659. javax.swing.UIManager.setLookAndFeel(info.getClassName());
  660. break;
  661. }
  662. }
  663. } catch (ClassNotFoundException ex) {
  664. java.util.logging.Logger.getLogger(swing.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  665. } catch (InstantiationException ex) {
  666. java.util.logging.Logger.getLogger(swing.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  667. } catch (IllegalAccessException ex) {
  668. java.util.logging.Logger.getLogger(swing.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  669. } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  670. java.util.logging.Logger.getLogger(swing.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  671. }
  672. //</editor-fold>
  673.  
  674. /* Create and display the form */
  675. java.awt.EventQueue.invokeLater(new Runnable() {
  676. public void run() {
  677. new swing().setVisible(true);
  678. }
  679. });
  680. }
  681.  
  682. // Variables declaration - do not modify
  683. private javax.swing.JButton jButton1;
  684. private javax.swing.JButton jButtonAddAgent;
  685. private javax.swing.JButton jButtonAddMission;
  686. private javax.swing.JButton jButtonAssign;
  687. private javax.swing.JButton jButtonDeleteAgent;
  688. private javax.swing.JButton jButtonDeleteMission;
  689. private javax.swing.JButton jButtonEditAgent;
  690. private javax.swing.JButton jButtonEditMission;
  691. private javax.swing.JLabel jLabel1;
  692. private javax.swing.JScrollPane jScrollPane1;
  693. private javax.swing.JScrollPane jScrollPane2;
  694. private javax.swing.JScrollPane jScrollPane3;
  695. private javax.swing.JTable jTableAgency;
  696. private javax.swing.JTable jTableAgent;
  697. private javax.swing.JTable jTableMissions;
  698. // End of variables declaration
  699. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement