Advertisement
Guest User

Untitled

a guest
May 26th, 2017
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.17 KB | None | 0 0
  1. package fi.cimcorp.dialog.testmachine;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Dimension;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. import java.util.Timer;
  10. import java.util.TimerTask;
  11.  
  12. import javax.swing.JPanel;
  13. import javax.swing.UIManager;
  14.  
  15. import com.progress.open4gl.ProDataGraph;
  16. import com.progress.open4gl.ProDataObject;
  17.  
  18. import fi.cimcorp.button.CCButton;
  19. import fi.cimcorp.connection.DB;
  20. import fi.cimcorp.connection.DBHolder;
  21. import fi.cimcorp.dialog.CCDialog;
  22. import fi.cimcorp.dialog.CCDialogHeader2;
  23. import fi.cimcorp.dialog.login.LoginHolder;
  24. import fi.cimcorp.label.CCLabel;
  25. import fi.cimcorp.main.Const;
  26. import fi.cimcorp.main.Errmsg;
  27. import fi.cimcorp.main.PrjNumHolder;
  28. import fi.cimcorp.panel.message.Message;
  29. import fi.cimcorp.style.color.CCColor;
  30. import fi.cimcorp.table.IOETableCellRenderer;
  31. import fi.cimcorp.table.IOETableSelectionListener;
  32. import fi.cimcorp.table.OETable;
  33. import fi.cimcorp.table.UnknownColumnsException;
  34. import fi.cimcorp.table.renderer.SignalLightCellRenderer;
  35. import fi.cimcorp.uitext.UIText;
  36. import net.miginfocom.swing.MigLayout;
  37.  
  38. public class FlangeChoiceDialog extends CCDialog implements IOETableSelectionListener,IOETableCellRenderer {
  39.  
  40. private static final long serialVersionUID = 1L;
  41. private static final String PRJNUM = "00001";
  42. private static final String IPADDRESS = "172.21.49.242";
  43. private FlangeDataGetter flangeDataGetter;
  44. private ProDataGraph pdg;
  45. private OETable flangeTable;
  46. private CCButton changeFlangeButton;
  47. private CCButton changeRequestButton;
  48. private int machineId;
  49. private int state;
  50. private SignalLightCellRenderer renderer;
  51. private Timer timer;
  52.  
  53. public FlangeChoiceDialog() {
  54. getContentPane().setLayout(new BorderLayout(0, 0));
  55.  
  56. initialize();
  57.  
  58. setSize(1200, 800);
  59. setLocationRelativeTo(null);
  60.  
  61. CCDialogHeader2 dialogHeader2 = new CCDialogHeader2(UIText.getText(Errmsg.FI_TEST_MACHINES), "testMachines");
  62. getContentPane().add(dialogHeader2, BorderLayout.NORTH);
  63. setTitle(UIText.getText(Errmsg.FI_TEST_MACHINES));
  64.  
  65. JPanel panel = new JPanel();
  66. getContentPane().add(panel, BorderLayout.CENTER);
  67. panel.setLayout(new MigLayout("gap 0 0 0 0", "[grow,fill]", "[grow,fill]")); // ylös vasen alas oikea
  68.  
  69. flangeTable = new OETable("tt_flange",
  70. new String[] { UIText.getText(Errmsg.STATE), UIText.getText(Errmsg.FI_NAME), UIText.getText(Errmsg.FI_INFOS), UIText.getText(Errmsg.FI_FLANGE), UIText.getText(Errmsg.FI_NAME), UIText.getText(Errmsg.RIMSIZE) + "1", UIText.getText(Errmsg.RIMSIZE) + "2", UIText.getText(Errmsg.MN_DEVICE)},
  71. new String[] { "state_txt", "machinename", "deviceinformation", "flangeid", "flangename", "innerdiameter1", "innerdiameter2", "machineid"});
  72. try {
  73. renderer = new SignalLightCellRenderer();
  74. flangeTable.setKeyFields(new String[] { "machineid" });
  75. flangeTable.subscribeOETableSelectionListener(this);
  76. flangeTable.setRenderer("state_txt", renderer);
  77. } catch (UnknownColumnsException e1) {
  78. e1.printStackTrace();
  79. }
  80.  
  81. panel.add(flangeTable, "cell 0 0,grow");
  82.  
  83. JPanel buttonpanel2 = new JPanel();
  84. getContentPane().add(buttonpanel2, BorderLayout.EAST);
  85. buttonpanel2.setLayout(new MigLayout("insets n 1 n n", "[grow]", "[][grow 10][][29.00,baseline][][grow][grow][]")); //ylös vasen alas oikea
  86.  
  87. CCButton refreshButton = new CCButton();
  88. refreshButton.setText(Errmsg.BU_UPDATE);
  89. refreshButton.setGroup(Const.groupView);
  90. buttonpanel2.add(refreshButton, "cell 0 0");
  91. refreshButton.addActionListener(new ActionListener() {
  92. public void actionPerformed(ActionEvent e) {
  93. refresh();
  94. }
  95.  
  96. });
  97.  
  98. CCLabel lblFlange = new CCLabel();
  99. lblFlange.setText(UIText.getText(Errmsg.FI_CHANGE_REQUEST));
  100. lblFlange.setMaximumSize(new Dimension(102, lblFlange.getMaximumSize().height));
  101. buttonpanel2.add(lblFlange, "cell 0 2");
  102.  
  103. changeRequestButton = new CCButton();
  104. changeRequestButton.setGroup(Const.groupModify);
  105. buttonpanel2.add(changeRequestButton, "cell 0 3");
  106. changeRequestButton.addActionListener(new ActionListener() {
  107. public void actionPerformed(ActionEvent e) {
  108. ProDataObject selectedFlange = flangeTable.getSelectedPdo();
  109. if (selectedFlange == null) {
  110. return;
  111. }
  112. changeRequest(selectedFlange);
  113. }
  114. });
  115.  
  116. changeFlangeButton = new CCButton();
  117. changeFlangeButton.setGroup(Const.groupModify);
  118. changeFlangeButton.setText(UIText.getText(Errmsg.FI_CHANGE_FLANGE)+"...");
  119. changeFlangeButton.setToolTipText(Errmsg.FI_CHANGE_FLANGE);
  120. buttonpanel2.add(changeFlangeButton, "cell 0 4");
  121. changeFlangeButton.addActionListener(new ActionListener() {
  122. public void actionPerformed(ActionEvent e) {
  123. ProDataObject selectedFlange = flangeTable.getSelectedPdo();
  124. if (selectedFlange == null) {
  125. return;
  126. }
  127. changeFlange(selectedFlange);
  128. }
  129. });
  130.  
  131. CCButton closeButton = new CCButton();
  132. closeButton.setGroup(Const.groupView);
  133. closeButton.setText(Errmsg.BU_CLOSE);
  134. buttonpanel2.add(closeButton, "cell 0 7");
  135.  
  136. closeButton.addActionListener(new ActionListener() {
  137. public void actionPerformed(ActionEvent e) {
  138. close();
  139. }
  140. });
  141.  
  142. setModal(true);
  143. flangeDataGetter = new FlangeDataGetter();
  144. refresh();
  145.  
  146. ProDataObject selectedFlange = flangeTable.getSelectedPdo();
  147.  
  148. if (selectedFlange != null) {
  149. if (selectedFlange.getInt("state") == Const.PRESSER_CHANGE) {
  150. changeFlangeButton.setEnabled(true);
  151. }
  152.  
  153. refresh();
  154. }
  155. else {
  156. changeFlangeButton.setEnabled(false);
  157. changeRequestButton.setEnabled(false);
  158. changeRequestButton.setText(UIText.getText(Errmsg.FI_YES));
  159. }
  160.  
  161. timer = new Timer();
  162. timer.scheduleAtFixedRate(new TimerTask() {
  163. @Override
  164. public void run() {
  165. refresh();
  166. }
  167. },
  168. 100,
  169. 1000);
  170. }
  171.  
  172.  
  173. private void initialize(){
  174. this.addWindowListener(new java.awt.event.WindowAdapter() {
  175.  
  176. boolean closeCalled = false;
  177. public void windowClosed(java.awt.event.WindowEvent e) {
  178. /* For some reason close -method will be called multiple times
  179. * and it freezes UI, so we will use a variable to indicate that close -method
  180. * has already called */
  181. if (closeCalled == true) return;
  182. closeCalled = true;
  183. closeMe();
  184. }
  185.  
  186. });
  187.  
  188. }
  189.  
  190. private void refresh() {
  191. getData();
  192. showData();
  193. color_state();
  194. }
  195.  
  196. private void showData() {
  197. try {
  198. flangeTable.addData(pdg);
  199. } catch (Exception e) {
  200. e.printStackTrace();
  201. }
  202. }
  203.  
  204. private void getData() {
  205. pdg = flangeDataGetter.getMachines(UIText.getLanguage());
  206. }
  207.  
  208. private void color_state() {
  209. ProDataObject selPdo;
  210. for (int i = 0; i < flangeTable.getModel().getRowCount(); i++) {
  211. selPdo = flangeTable.getModel().getData(i);
  212. String str = selPdo.getString("state_color");
  213. int color_int = Integer.parseInt(str.substring(6));
  214. Color color = CCColor.getColor(color_int);
  215. renderer.addPair(selPdo.getString("state_txt"), color);
  216. }
  217.  
  218. }
  219.  
  220. private void changeFlange(ProDataObject pdo) {
  221. if (pdo == null)
  222. return;
  223.  
  224. FlangeChangeDialog flangeChangeDialog = new FlangeChangeDialog(pdo);
  225. flangeChangeDialog.setVisible(true);
  226.  
  227. refresh();
  228. }
  229.  
  230. private void changeRequest(ProDataObject pdo) {
  231.  
  232. machineId = pdo.getInt("machineid");
  233. state = pdo.getInt("state");
  234.  
  235. flangeDataGetter.updateRequest(machineId, state);
  236.  
  237. refresh();
  238. }
  239.  
  240. public static void main(String[] args) {
  241. try {
  242. UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  243. } catch (Exception e) {
  244. e.printStackTrace();
  245. }
  246.  
  247. LoginHolder.setUser("telt");
  248. LoginHolder.setPwd("telt10");
  249. LoginHolder.setGroups(Const.groupView + ";" + Const.groupModify);
  250. PrjNumHolder.setPrjNum(PRJNUM);
  251. DB db = new DB(IPADDRESS, "d" + PrjNumHolder.getPrjNum() + "p1");
  252. db.setAppsstring("AppServer://" + IPADDRESS + ":" + "5162" + "/" + db.getDbname());
  253. DBHolder.setDB(db);
  254.  
  255. FlangeChoiceDialog flangeChoiceDialog = new FlangeChoiceDialog();
  256. flangeChoiceDialog.setVisible(true);
  257. }
  258.  
  259. @Override
  260. public void oeTableSelectionChanged(OETable table) {
  261. toggleButtons();
  262.  
  263. if (table.getSelectedPdo() != null && table.getSelectedPdo().getInt("state") != Const.UF_MACHINE_WAITING_CHANGE) {
  264. changeRequestButton.setText(UIText.getText(Errmsg.FI_YES));
  265. }
  266. else {
  267. if (table.getSelectedPdo() != null && table.getSelectedPdo().getInt("machineid") != 0)
  268. changeRequestButton.setText(UIText.getText(Errmsg.BU_CANCEL));
  269. }
  270.  
  271. }
  272.  
  273. @Override
  274. public boolean renderCell(OETable oeTable, Component c, int row, int column) {
  275. int col = oeTable.getTable().convertColumnIndexToModel(column);
  276. return (col == 0);
  277. }
  278.  
  279. private void toggleButtons() {
  280. changeFlangeButton.setEnabled(flangeTable.getSelectedPdo() != null && flangeTable.getSelectedPdo().getInt("state") == Const.PRESSER_CHANGE);
  281. changeRequestButton.setEnabled(flangeTable.getSelectedPdo().getInt("state") == Const.PRESSER_NORMAL ||
  282. flangeTable.getSelectedPdo().getInt("state") == Const.PRESSER_WAITING_CHANGE);
  283.  
  284. }
  285.  
  286. protected void closeMe() {
  287. timer.cancel();
  288. super.close();
  289. }
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement