Skip to content
Snippets Groups Projects
Commit ede73147 authored by Matej Kovár's avatar Matej Kovár
Browse files

created new table model class which observes HumanFace

parent 6c8f10cd
No related branches found
No related tags found
No related merge requests found
......@@ -240,11 +240,11 @@
<SubComponents>
<Component class="javax.swing.JTable" name="jTable1">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor" postCode="jTable1.getTableHeader().setOpaque(false);&#xa;jTable1.getTableHeader().setBackground(new java.awt.Color(204,204,204));&#xa;jTable1.getTableHeader().setFont(new java.awt.Font(&quot;Tahoma&quot;, 0, 18));&#xa;jTable1.setModel(new cz.fidentis.analyst.gui.DefaultModelsTableModel(new Object[]{&quot;&quot;, &quot;Models&quot;, &quot;KD-tree&quot;}, 0));&#xa;/*">
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor" postCode="jTable1.getTableHeader().setOpaque(false);&#xa;jTable1.getTableHeader().setBackground(new java.awt.Color(204,204,204));&#xa;jTable1.getTableHeader().setFont(new java.awt.Font(&quot;Tahoma&quot;, 0, 18));&#xa;model.addTableModelListener(new TableModelListener() {&#xa;&#xa; public void tableChanged(TableModelEvent e) {&#xa; &#xa; if (e.getType() == javax.swing.event.TableModelEvent.UPDATE &amp;&amp; byUser) {&#xa; int row = e.getFirstRow();&#xa; int col = e.getColumn();&#xa;&#xa; if (jTable1.getValueAt(row, col) == (Object)true) {&#xa; selectedRows.add(row);&#xa; } else {&#xa; selectedRows.remove((Object)row);&#xa; }&#xa; }&#xa; }&#xa;});">
<Font name="Tahoma" size="18" style="0"/>
</Property>
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor" postCode="//javax.swing.table.DefaultTableModel model = (javax.swing.table.DefaultTableModel)jTable1.getModel();&#xa;*/&#xa;jTable1.getColumnModel().getColumn(0).setMaxWidth(50);&#xa;jTable1.getColumnModel().getColumn(2).setMaxWidth(75);&#xa;jTable1.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(50);&#xa;jTable1.getTableHeader().getColumnModel().getColumn(2).setMaxWidth(75);&#xa;model = (javax.swing.table.DefaultTableModel) jTable1.getModel();&#xa;model.addTableModelListener(new TableModelListener() {&#xa;&#xa; public void tableChanged(TableModelEvent e) {&#xa; &#xa; if (e.getType() == javax.swing.event.TableModelEvent.UPDATE &amp;&amp; byUser) {&#xa; int row = e.getFirstRow();&#xa; int col = e.getColumn();&#xa;&#xa; if (jTable1.getValueAt(row, col) == (Object)true) {&#xa; selectedRows.add(row);&#xa; } else {&#xa; selectedRows.remove((Object)row);&#xa; }&#xa; }&#xa; }&#xa;});">
<Connection code="new javax.swing.table.DefaultTableModel(&#xa; new Object [][] {},&#xa; new String [] {&quot;&quot;, &quot;Models&quot;, &quot;KD-tree&quot;}) {&#xa; private Class[] types = new Class [] {&#xa; java.lang.Boolean.class, java.lang.Object.class, java.lang.Boolean.class&#xa; };&#xa; private boolean[] canEdit = new boolean [] {&#xa; true, false, false};&#xa;&#xa; public Class getColumnClass(int columnIndex) {&#xa; return types [columnIndex];}&#xa;&#xa; public boolean isCellEditable(int rowIndex, int columnIndex) {&#xa; return canEdit [columnIndex];&#xa; }&#xa; public Class[] getTypes() {&#xa; return types;}&#xa;&#xa; public void setTypes(Class[] types) {&#xa; this.types = types;}&#xa;&#xa; public boolean[] getCanEdit() {&#xa; return canEdit;}&#xa;&#xa; public void setCanEdit(boolean[] canEdit) {&#xa; this.canEdit = canEdit;&#xa; }&#xa;}" type="code"/>
<Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor" postCode="jTable1.getColumnModel().getColumn(0).setMaxWidth(50);&#xa;jTable1.getColumnModel().getColumn(2).setMaxWidth(75);&#xa;jTable1.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(50);&#xa;jTable1.getTableHeader().getColumnModel().getColumn(2).setMaxWidth(75);">
<Connection code="model" type="code"/>
</Property>
<Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
<TableColumnModel selectionModel="0"/>
......@@ -264,4 +264,4 @@
</SubComponents>
</Container>
</SubComponents>
</Form>
\ No newline at end of file
</Form>
......@@ -13,7 +13,7 @@ import org.openide.util.NbBundle.Messages;
import cz.fidentis.analyst.Project;
import cz.fidentis.analyst.face.HumanFace;
import cz.fidentis.analyst.face.HumanFaceFactory;
import cz.fidentis.analyst.gui.DefaultModelsTableModel;
import cz.fidentis.analyst.gui.ModelsTableModel;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
......@@ -64,7 +64,7 @@ public final class ProjectTopComp extends TopComponent {
private final Project project;
private Map<HumanFace, SingleFaceTab> singleFaceTabs = new HashMap<>();
private Map<HumanFace, FaceToFaceTab> faceToFaceTabs = new HashMap<>();
private javax.swing.table.DefaultTableModel model;
private ModelsTableModel model = new ModelsTableModel(new Object[]{"", "Models", "KD-tree"}, 0);;
/* List of indexes of selected Rows */
private List<Integer> selectedRows = new ArrayList<>();
......@@ -219,43 +219,6 @@ public final class ProjectTopComp extends TopComponent {
jTable1.getTableHeader().setOpaque(false);
jTable1.getTableHeader().setBackground(new java.awt.Color(204,204,204));
jTable1.getTableHeader().setFont(new java.awt.Font("Tahoma", 0, 18));
jTable1.setModel(new DefaultModelsTableModel(new Object[]{"", "Models", "KD-tree"}, 0));
/*
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {},
new String [] {"", "Models", "KD-tree"}) {
private Class[] types = new Class [] {
java.lang.Boolean.class, java.lang.Object.class, java.lang.Boolean.class
};
private boolean[] canEdit = new boolean [] {
true, false, false};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
public Class[] getTypes() {
return types;}
public void setTypes(Class[] types) {
this.types = types;}
public boolean[] getCanEdit() {
return canEdit;}
public void setCanEdit(boolean[] canEdit) {
this.canEdit = canEdit;
}
});
//javax.swing.table.DefaultTableModel model = (javax.swing.table.DefaultTableModel)jTable1.getModel();
*/
jTable1.getColumnModel().getColumn(0).setMaxWidth(50);
jTable1.getColumnModel().getColumn(2).setMaxWidth(75);
jTable1.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(50);
jTable1.getTableHeader().getColumnModel().getColumn(2).setMaxWidth(75);
model = (javax.swing.table.DefaultTableModel) jTable1.getModel();
model.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
......@@ -272,6 +235,11 @@ public final class ProjectTopComp extends TopComponent {
}
}
});
jTable1.setModel(model);
jTable1.getColumnModel().getColumn(0).setMaxWidth(50);
jTable1.getColumnModel().getColumn(2).setMaxWidth(75);
jTable1.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(50);
jTable1.getTableHeader().getColumnModel().getColumn(2).setMaxWidth(75);
jTable1.setDragEnabled(true);
jTable1.setRowHeight(40);
jTable1.setRowSelectionAllowed(false);
......@@ -417,7 +385,6 @@ public final class ProjectTopComp extends TopComponent {
} else {
JOptionPane.showMessageDialog(this, "Select one model");
}
}//GEN-LAST:event_analyseButton1MouseClicked
// Variables declaration - do not modify//GEN-BEGIN:variables
......@@ -494,6 +461,7 @@ public final class ProjectTopComp extends TopComponent {
String name = face.getShortName();
if (this.project.getFaceByName(name) == null) {
this.project.addFace(face);
face.addObserver(model);
model.addRow(new Object[]{false, name, false});
} else {
JOptionPane.showMessageDialog(this, "Model with this name is already loaded");
......@@ -508,10 +476,12 @@ public final class ProjectTopComp extends TopComponent {
* @param name name of the tab (name of the model)
*/
private void createSingleFaceTab(HumanFace face, String name) {
byUser = false;
SingleFaceTab newTab = new SingleFaceTab(face, name);
this.singleFaceTabs.put(face, newTab);
newTab.open();
newTab.requestActive();
byUser = true;
}
/**
......@@ -521,10 +491,12 @@ public final class ProjectTopComp extends TopComponent {
* @param name name of the tab
*/
private void createFaceToFaceTab(HumanFace face1, HumanFace face2, String name) {
byUser = false;
FaceToFaceTab newTab = new FaceToFaceTab(face1, face2, name);
this.faceToFaceTabs.put(face1, newTab);
this.faceToFaceTabs.put(face2, newTab);
newTab.open();
newTab.requestActive();
byUser = true;
}
}
......@@ -5,22 +5,29 @@
*/
package cz.fidentis.analyst.gui;
import javax.swing.event.TableModelListener;
import cz.fidentis.analyst.face.HumanFace;
import java.util.Observable;
import java.util.Observer;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Matej Kovar
*/
public class DefaultModelsTableModel extends DefaultTableModel {
public DefaultModelsTableModel(Object[] columnNames, int rowCount) {
public class ModelsTableModel extends DefaultTableModel implements Observer {
/**
* Constructor for table model
* @param columnNames names of Columns
* @param rowCount number of rows
*/
public ModelsTableModel(Object[] columnNames, int rowCount) {
super(columnNames, rowCount);
}
private Class[] types = new Class [] {
java.lang.Boolean.class, java.lang.Object.class, java.lang.Boolean.class
java.lang.Boolean.class, java.lang.String.class, java.lang.Boolean.class
};
private boolean[] canEdit = new boolean [] {
......@@ -47,4 +54,21 @@ public class DefaultModelsTableModel extends DefaultTableModel {
public void setCanEdit(boolean[] canEdit) {
this.canEdit = canEdit;
}
@Override
public void update(Observable o, Object o1) {
HumanFace face = (HumanFace)o1;
String name = face.getShortName();
boolean hasKD = false;
if (face.getKdTree() != null) {
hasKD = true;
}
for (int i = 0; i < getRowCount(); i++) {
if (getValueAt(i, 1).equals(name)) {
this.setValueAt(hasKD, i, 2);
break;
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment