Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package fi.cimcorp.dialog.testmachine;
- import java.awt.BorderLayout;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.Timer;
- import java.util.TimerTask;
- import javax.swing.JPanel;
- import javax.swing.UIManager;
- import com.progress.open4gl.ProDataGraph;
- import com.progress.open4gl.ProDataObject;
- import fi.cimcorp.button.CCButton;
- import fi.cimcorp.connection.DB;
- import fi.cimcorp.connection.DBHolder;
- import fi.cimcorp.dialog.CCDialog;
- import fi.cimcorp.dialog.CCDialogHeader2;
- import fi.cimcorp.dialog.login.LoginHolder;
- import fi.cimcorp.label.CCLabel;
- import fi.cimcorp.main.Const;
- import fi.cimcorp.main.Errmsg;
- import fi.cimcorp.main.PrjNumHolder;
- import fi.cimcorp.panel.message.Message;
- import fi.cimcorp.style.color.CCColor;
- import fi.cimcorp.table.IOETableCellRenderer;
- import fi.cimcorp.table.IOETableSelectionListener;
- import fi.cimcorp.table.OETable;
- import fi.cimcorp.table.UnknownColumnsException;
- import fi.cimcorp.table.renderer.SignalLightCellRenderer;
- import fi.cimcorp.uitext.UIText;
- import net.miginfocom.swing.MigLayout;
- public class FlangeChoiceDialog extends CCDialog implements IOETableSelectionListener,IOETableCellRenderer {
- private static final long serialVersionUID = 1L;
- private static final String PRJNUM = "00001";
- private static final String IPADDRESS = "172.21.49.242";
- private FlangeDataGetter flangeDataGetter;
- private ProDataGraph pdg;
- private OETable flangeTable;
- private CCButton changeFlangeButton;
- private CCButton changeRequestButton;
- private int machineId;
- private int state;
- private SignalLightCellRenderer renderer;
- private Timer timer;
- public FlangeChoiceDialog() {
- getContentPane().setLayout(new BorderLayout(0, 0));
- initialize();
- setSize(1200, 800);
- setLocationRelativeTo(null);
- CCDialogHeader2 dialogHeader2 = new CCDialogHeader2(UIText.getText(Errmsg.FI_TEST_MACHINES), "testMachines");
- getContentPane().add(dialogHeader2, BorderLayout.NORTH);
- setTitle(UIText.getText(Errmsg.FI_TEST_MACHINES));
- JPanel panel = new JPanel();
- getContentPane().add(panel, BorderLayout.CENTER);
- panel.setLayout(new MigLayout("gap 0 0 0 0", "[grow,fill]", "[grow,fill]")); // ylös vasen alas oikea
- flangeTable = new OETable("tt_flange",
- 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)},
- new String[] { "state_txt", "machinename", "deviceinformation", "flangeid", "flangename", "innerdiameter1", "innerdiameter2", "machineid"});
- try {
- renderer = new SignalLightCellRenderer();
- flangeTable.setKeyFields(new String[] { "machineid" });
- flangeTable.subscribeOETableSelectionListener(this);
- flangeTable.setRenderer("state_txt", renderer);
- } catch (UnknownColumnsException e1) {
- e1.printStackTrace();
- }
- panel.add(flangeTable, "cell 0 0,grow");
- JPanel buttonpanel2 = new JPanel();
- getContentPane().add(buttonpanel2, BorderLayout.EAST);
- buttonpanel2.setLayout(new MigLayout("insets n 1 n n", "[grow]", "[][grow 10][][29.00,baseline][][grow][grow][]")); //ylös vasen alas oikea
- CCButton refreshButton = new CCButton();
- refreshButton.setText(Errmsg.BU_UPDATE);
- refreshButton.setGroup(Const.groupView);
- buttonpanel2.add(refreshButton, "cell 0 0");
- refreshButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- refresh();
- }
- });
- CCLabel lblFlange = new CCLabel();
- lblFlange.setText(UIText.getText(Errmsg.FI_CHANGE_REQUEST));
- lblFlange.setMaximumSize(new Dimension(102, lblFlange.getMaximumSize().height));
- buttonpanel2.add(lblFlange, "cell 0 2");
- changeRequestButton = new CCButton();
- changeRequestButton.setGroup(Const.groupModify);
- buttonpanel2.add(changeRequestButton, "cell 0 3");
- changeRequestButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- ProDataObject selectedFlange = flangeTable.getSelectedPdo();
- if (selectedFlange == null) {
- return;
- }
- changeRequest(selectedFlange);
- }
- });
- changeFlangeButton = new CCButton();
- changeFlangeButton.setGroup(Const.groupModify);
- changeFlangeButton.setText(UIText.getText(Errmsg.FI_CHANGE_FLANGE)+"...");
- changeFlangeButton.setToolTipText(Errmsg.FI_CHANGE_FLANGE);
- buttonpanel2.add(changeFlangeButton, "cell 0 4");
- changeFlangeButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- ProDataObject selectedFlange = flangeTable.getSelectedPdo();
- if (selectedFlange == null) {
- return;
- }
- changeFlange(selectedFlange);
- }
- });
- CCButton closeButton = new CCButton();
- closeButton.setGroup(Const.groupView);
- closeButton.setText(Errmsg.BU_CLOSE);
- buttonpanel2.add(closeButton, "cell 0 7");
- closeButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- close();
- }
- });
- setModal(true);
- flangeDataGetter = new FlangeDataGetter();
- refresh();
- ProDataObject selectedFlange = flangeTable.getSelectedPdo();
- if (selectedFlange != null) {
- if (selectedFlange.getInt("state") == Const.PRESSER_CHANGE) {
- changeFlangeButton.setEnabled(true);
- }
- refresh();
- }
- else {
- changeFlangeButton.setEnabled(false);
- changeRequestButton.setEnabled(false);
- changeRequestButton.setText(UIText.getText(Errmsg.FI_YES));
- }
- timer = new Timer();
- timer.scheduleAtFixedRate(new TimerTask() {
- @Override
- public void run() {
- refresh();
- }
- },
- 100,
- 1000);
- }
- private void initialize(){
- this.addWindowListener(new java.awt.event.WindowAdapter() {
- boolean closeCalled = false;
- public void windowClosed(java.awt.event.WindowEvent e) {
- /* For some reason close -method will be called multiple times
- * and it freezes UI, so we will use a variable to indicate that close -method
- * has already called */
- if (closeCalled == true) return;
- closeCalled = true;
- closeMe();
- }
- });
- }
- private void refresh() {
- getData();
- showData();
- color_state();
- }
- private void showData() {
- try {
- flangeTable.addData(pdg);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- private void getData() {
- pdg = flangeDataGetter.getMachines(UIText.getLanguage());
- }
- private void color_state() {
- ProDataObject selPdo;
- for (int i = 0; i < flangeTable.getModel().getRowCount(); i++) {
- selPdo = flangeTable.getModel().getData(i);
- String str = selPdo.getString("state_color");
- int color_int = Integer.parseInt(str.substring(6));
- Color color = CCColor.getColor(color_int);
- renderer.addPair(selPdo.getString("state_txt"), color);
- }
- }
- private void changeFlange(ProDataObject pdo) {
- if (pdo == null)
- return;
- FlangeChangeDialog flangeChangeDialog = new FlangeChangeDialog(pdo);
- flangeChangeDialog.setVisible(true);
- refresh();
- }
- private void changeRequest(ProDataObject pdo) {
- machineId = pdo.getInt("machineid");
- state = pdo.getInt("state");
- flangeDataGetter.updateRequest(machineId, state);
- refresh();
- }
- public static void main(String[] args) {
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- } catch (Exception e) {
- e.printStackTrace();
- }
- LoginHolder.setUser("telt");
- LoginHolder.setPwd("telt10");
- LoginHolder.setGroups(Const.groupView + ";" + Const.groupModify);
- PrjNumHolder.setPrjNum(PRJNUM);
- DB db = new DB(IPADDRESS, "d" + PrjNumHolder.getPrjNum() + "p1");
- db.setAppsstring("AppServer://" + IPADDRESS + ":" + "5162" + "/" + db.getDbname());
- DBHolder.setDB(db);
- FlangeChoiceDialog flangeChoiceDialog = new FlangeChoiceDialog();
- flangeChoiceDialog.setVisible(true);
- }
- @Override
- public void oeTableSelectionChanged(OETable table) {
- toggleButtons();
- if (table.getSelectedPdo() != null && table.getSelectedPdo().getInt("state") != Const.UF_MACHINE_WAITING_CHANGE) {
- changeRequestButton.setText(UIText.getText(Errmsg.FI_YES));
- }
- else {
- if (table.getSelectedPdo() != null && table.getSelectedPdo().getInt("machineid") != 0)
- changeRequestButton.setText(UIText.getText(Errmsg.BU_CANCEL));
- }
- }
- @Override
- public boolean renderCell(OETable oeTable, Component c, int row, int column) {
- int col = oeTable.getTable().convertColumnIndexToModel(column);
- return (col == 0);
- }
- private void toggleButtons() {
- changeFlangeButton.setEnabled(flangeTable.getSelectedPdo() != null && flangeTable.getSelectedPdo().getInt("state") == Const.PRESSER_CHANGE);
- changeRequestButton.setEnabled(flangeTable.getSelectedPdo().getInt("state") == Const.PRESSER_NORMAL ||
- flangeTable.getSelectedPdo().getInt("state") == Const.PRESSER_WAITING_CHANGE);
- }
- protected void closeMe() {
- timer.cancel();
- super.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement