package com.lsm.testschema.gui; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JTextArea; import javax.swing.JButton; import com.hp.hpl.jena.ontology.OntModelSpec; import com.lsm.testschema.model.Service; import com.lsm.testschema.model.WidgetAttributes; import com.lsm.testschema.model.WidgetAvailable; import com.lsm.testschema.model.WidgetPresentation; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.util.List; import lsm.beans.User; import lsm.schema.LSMSchema; import lsm.server.LSMTripleStore; import javax.swing.JComboBox; import javax.swing.border.TitledBorder; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.LayoutStyle.ComponentPlacement; import javax.swing.JTabbedPane; public class EnterService extends JDialog { private JPanel contentPane; private JTextField textFieldUserID; private JTextField textFieldServiceID; private JTextField textFieldName; private JTextField textFieldDescription; private JTextArea textAreaQString; //private JTable tableAttributes; private JComboBox comboBoxWidget; private JPanel panelWidget2; private JTabbedPane tabbedPaneWidgetAttrs; public EnterService(com.lsm.testschema.model.User userRecord,List<WidgetAvailable> wa) { init(); ////addTab("test"); for (int i = 0; i < wa.size(); i++) { addTab(wa.get(i).getId()); } textFieldUserID.setText(userRecord.getId()); } private void init() { setTitle("Enter Service"); this.setModal(true); setBounds(100, 100, 758, 572); setLocationRelativeTo(null); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); this.setContentPane(contentPane); contentPane.setLayout(null); JPanel panelService = new JPanel(); panelService.setBorder(new TitledBorder(null, "Service", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panelService.setBounds(12, 13, 295, 461); contentPane.add(panelService); panelService.setLayout(null); JLabel label = new JLabel("UserID"); label.setBounds(46, 34, 56, 16); panelService.add(label); textFieldUserID = new JTextField(); textFieldUserID.setEditable(false); textFieldUserID.setColumns(10); textFieldUserID.setBounds(139, 31, 116, 22); panelService.add(textFieldUserID); JLabel labelServiceID = new JLabel("SrvcID"); labelServiceID.setEnabled(false); labelServiceID.setBounds(46, 66, 56, 16); panelService.add(labelServiceID); textFieldServiceID = new JTextField(); textFieldServiceID.setEnabled(false); textFieldServiceID.setColumns(10); textFieldServiceID.setBounds(139, 63, 116, 22); panelService.add(textFieldServiceID); JLabel labelServiceName = new JLabel("Name"); labelServiceName.setBounds(46, 99, 56, 16); panelService.add(labelServiceName); textFieldName = new JTextField(); textFieldName.setColumns(10); textFieldName.setBounds(139, 96, 116, 22); panelService.add(textFieldName); JLabel labelSrvcDesc = new JLabel("Description"); labelSrvcDesc.setBounds(46, 134, 72, 16); panelService.add(labelSrvcDesc); textFieldDescription = new JTextField(); textFieldDescription.setColumns(10); textFieldDescription.setBounds(139, 131, 116, 22); panelService.add(textFieldDescription); JLabel labelQstring = new JLabel("QString"); labelQstring.setBounds(123, 166, 56, 16); panelService.add(labelQstring); textAreaQString = new JTextArea(); textAreaQString.setBounds(12, 184, 268, 112); panelService.add(textAreaQString); JButton buttonServiceInsert = new JButton("Insert"); buttonServiceInsert.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { User user = new User(); user.setUsername("spet"); user.setPass("spetlsm"); LSMTripleStore lsmStore = new LSMTripleStore(); lsmStore.setUser(user); LSMSchema myOnt = new LSMSchema("files\\savedFromProtegeCopy.owl", OntModelSpec.OWL_DL_MEM,"TURTLE"); LSMSchema myOntInstance = new LSMSchema(); Service srvc = new Service(myOnt, myOntInstance,"http://lsm.deri.ie/OpenIoT/testSchema#",lsmStore); srvc.setName(textFieldName.getText()); srvc.setDescription(textFieldDescription.getText()); srvc.setQueryString(textAreaQString.getText()); // srvc.createClassIdv(); srvc.createPserviceName(); srvc.createPserviceDescription(); srvc.createPqString(); com.lsm.testschema.model.User schedulerUser = new com.lsm.testschema.model.User(myOnt, myOntInstance,"http://lsm.deri.ie/OpenIoT/testSchema#",lsmStore); schedulerUser.setId(textFieldUserID.getText()); schedulerUser.addService(srvc); // schedulerUser.createClassIdv(); schedulerUser.createPuserOf(); ///// widget stuff ///// for(int j=0; j<tabbedPaneWidgetAttrs.getTabCount(); j++) { JPanel tabPanel = (JPanel)tabbedPaneWidgetAttrs.getComponent(j); JScrollPane scrolPane= ((JScrollPane)tabPanel.getComponent(0)); JTable jt = (JTable)scrolPane.getViewport().getComponent(0); DefaultTableModel dModel = (DefaultTableModel)jt.getModel(); int rc = dModel.getRowCount(); if(rc==0) { continue; } WidgetPresentation widgetPre = new WidgetPresentation(myOnt, myOntInstance,"http://lsm.deri.ie/OpenIoT/testSchema#",lsmStore); //widgetPre.setDescription("desc"); widgetPre.setService(srvc); // widgetPre.createClassIdv(); //widgetPre.createPdescription(); widgetPre.createPwidgetPresOf(); //widgetP.addWidget(widget); //widgetP.addWidgetAttr(widgetAttr) WidgetAvailable wAvail = new WidgetAvailable(myOnt, myOntInstance,"http://lsm.deri.ie/OpenIoT/testSchema#",lsmStore); wAvail.setId(tabbedPaneWidgetAttrs.getTitleAt(j)); wAvail.setWidgetPre(widgetPre); /// wAvail.createClassIdv(); wAvail.createPWidgetOf(); //WidgetAttributes[] wAttrArr = new WidgetAttributes[rc]; for(int i=0; i<rc; i++) { WidgetAttributes wAttr = new WidgetAttributes(myOnt, myOntInstance,"http://lsm.deri.ie/OpenIoT/testSchema#",lsmStore); wAttr.setDescription((String)dModel.getValueAt(i, 0)); wAttr.setName((String)dModel.getValueAt(i, 1)); wAttr.setWidgetPre(widgetPre); /// wAttr.createClassIdv(); wAttr.createPdesc(); wAttr.createPname(); wAttr.createPWidgetAttrOf(); widgetPre.addWidgetAttr(wAttr); widgetPre.createPwidgetAttr(); //wAttrArr[i]=wAttr; } widgetPre.setWidgetAvailable(wAvail); widgetPre.createPwidget(); srvc.addWidgetPresentation(widgetPre); srvc.createPwidgetPres(); } //// widget stuff end ///// srvc.setUser(schedulerUser); srvc.createPUser(); if(srvc.getWidgetPresList().size()!=0) { lsmStore.pushRDF("http://lsm.deri.ie/OpenIoT/testSchema#",myOntInstance.exportToTriples("N-TRIPLE")); } else { System.out.println("\n service not added \n"); } System.out.println(myOntInstance.exportToTriples("TURTLE")); dispose(); } }); buttonServiceInsert.setBounds(268, 487, 97, 25); contentPane.add(buttonServiceInsert); JButton buttonStatusInsertCancel = new JButton("Cancel"); buttonStatusInsertCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); buttonStatusInsertCancel.setBounds(377, 487, 97, 25); contentPane.add(buttonStatusInsertCancel); panelWidget2 = new JPanel(); panelWidget2.setBorder(new TitledBorder(null, "Widget", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panelWidget2.setBounds(319, 13, 411, 461); contentPane.add(panelWidget2); tabbedPaneWidgetAttrs = new JTabbedPane(JTabbedPane.TOP); GroupLayout gl_panelWidget2 = new GroupLayout(panelWidget2); gl_panelWidget2.setHorizontalGroup( gl_panelWidget2.createParallelGroup(Alignment.LEADING) .addComponent(tabbedPaneWidgetAttrs, GroupLayout.DEFAULT_SIZE, 399, Short.MAX_VALUE) ); gl_panelWidget2.setVerticalGroup( gl_panelWidget2.createParallelGroup(Alignment.LEADING) .addComponent(tabbedPaneWidgetAttrs, GroupLayout.DEFAULT_SIZE, 436, Short.MAX_VALUE) ); panelWidget2.setLayout(gl_panelWidget2); } private void addTab(String widgetNode) { JPanel panelOfTabbedPane = new JPanel(); tabbedPaneWidgetAttrs.addTab(widgetNode, null, panelOfTabbedPane, null); JScrollPane scrollPane = new JScrollPane(); final JTable tableAttributes2 = new JTable(); tableAttributes2.setModel(new DefaultTableModel( new Object[][] { }, new String[] { "Name", "Description" } ) { Class[] columnTypes = new Class[] { String.class, String.class }; public Class getColumnClass(int columnIndex) { return columnTypes[columnIndex]; } }); tableAttributes2.setBounds(0, 0, 1, 1); tableAttributes2.setRowSelectionAllowed(false); scrollPane.setViewportView(tableAttributes2); JButton btnAddAttr = new JButton("Add"); btnAddAttr.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ((DefaultTableModel)tableAttributes2.getModel()). insertRow( ((DefaultTableModel)tableAttributes2.getModel()).getRowCount(), new Object[] { // usrList.get(i).getId(), // usrList.get(i).getName(), // usrList.get(i).getEmail(), // usrList.get(i).getDescription() }); } }); final JButton btnDelAttr = new JButton("Delete"); btnDelAttr.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { DefaultTableModel tb = (DefaultTableModel)tableAttributes2.getModel(); if (tb.getRowCount() > 0) { tb.removeRow(tb.getRowCount()-1); } } }); GroupLayout gl_panelOfTabbedPane = new GroupLayout(panelOfTabbedPane); gl_panelOfTabbedPane.setHorizontalGroup ( gl_panelOfTabbedPane.createParallelGroup(Alignment.LEADING) .addGroup(Alignment.TRAILING, gl_panelOfTabbedPane.createSequentialGroup() .addContainerGap() .addGroup(gl_panelOfTabbedPane.createParallelGroup(Alignment.TRAILING) .addComponent(scrollPane, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 363, Short.MAX_VALUE) .addGroup(gl_panelOfTabbedPane.createSequentialGroup() .addComponent(btnAddAttr, GroupLayout.PREFERRED_SIZE, 97, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED, 180, Short.MAX_VALUE) .addComponent(btnDelAttr, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE))) .addContainerGap()) ); gl_panelOfTabbedPane.setVerticalGroup ( gl_panelOfTabbedPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_panelOfTabbedPane.createSequentialGroup() .addContainerGap() .addGroup(gl_panelOfTabbedPane.createParallelGroup(Alignment.BASELINE) .addComponent(btnAddAttr) .addComponent(btnDelAttr)) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 304, Short.MAX_VALUE) .addContainerGap()) ); panelOfTabbedPane.setLayout(gl_panelOfTabbedPane); } }//class