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

created new class DefaultModelsTableModel

parent e20670fa
No related branches found
No related tags found
No related merge requests found
......@@ -240,10 +240,10 @@
<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.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);">
<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;/*">
<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;jTable1.getColumnModel().getColumn(0).setMaxWidth(50);&#xa;//jTable1.getColumnModel().getColumn(1).setPreferredWidth(1000);&#xa;jTable1.getColumnModel().getColumn(2).setMaxWidth(75);&#xa;jTable1.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(50);&#xa;//jTable1.getTableHeader().getColumnModel().getColumn(1).setPreferredWidth(1000);&#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;});">
<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>
<Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
......@@ -264,4 +264,4 @@
</SubComponents>
</Container>
</SubComponents>
</Form>
</Form>
\ No newline at end of file
......@@ -13,6 +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 java.io.File;
import java.io.IOException;
import java.nio.file.Path;
......@@ -24,7 +25,6 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
......@@ -219,7 +219,8 @@ 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.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
jTable1.setModel(new DefaultModelsTableModel(new Object[]{"", "Models", "KD-tree"}, 0));
/*
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {},
new String [] {"", "Models", "KD-tree"}) {
......@@ -249,11 +250,10 @@ public final class ProjectTopComp extends TopComponent {
}
});
//javax.swing.table.DefaultTableModel model = (javax.swing.table.DefaultTableModel)jTable1.getModel();
*/
jTable1.getColumnModel().getColumn(0).setMaxWidth(50);
//jTable1.getColumnModel().getColumn(1).setPreferredWidth(1000);
jTable1.getColumnModel().getColumn(2).setMaxWidth(75);
jTable1.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(50);
//jTable1.getTableHeader().getColumnModel().getColumn(1).setPreferredWidth(1000);
jTable1.getTableHeader().getColumnModel().getColumn(2).setMaxWidth(75);
model = (javax.swing.table.DefaultTableModel) jTable1.getModel();
model.addTableModelListener(new TableModelListener() {
......@@ -494,11 +494,7 @@ public final class ProjectTopComp extends TopComponent {
String name = face.getShortName();
if (this.project.getFaceByName(name) == null) {
this.project.addFace(face);
boolean hasKD;
if (face.getKdTree() == null) {hasKD = false;}
else {hasKD = true;}
model.addRow(new Object[]{false, name, hasKD});
//createSingleFaceTab(face, name);
model.addRow(new Object[]{false, name, false});
} else {
JOptionPane.showMessageDialog(this, "Model with this name is already loaded");
}
......@@ -506,80 +502,6 @@ public final class ProjectTopComp extends TopComponent {
}
}
/**
* Load two models for 1:1 comparison
public void loadTwoModels() {
File file1 = new FileChooserBuilder(ProjectTopComp.class)
.setTitle("Open human face(s)")
.setDefaultWorkingDirectory(new File (System.getProperty("user.home")))
//.setApproveText("Add")
.setFileFilter(new FileNameExtensionFilter("obj files (*.obj)", "obj"))
.setAcceptAllFileFilterUsed(true)
.showOpenDialog();
File file2 = new FileChooserBuilder(ProjectTopComp.class)
.setTitle("Open human face(s)")
.setDefaultWorkingDirectory(new File (System.getProperty("user.home")))
//.setApproveText("Add")
.setFileFilter(new FileNameExtensionFilter("obj files (*.obj)", "obj"))
.setAcceptAllFileFilterUsed(true)
.showOpenDialog();
if (file1 == null || file2 == null) {
System.out.print("Missing file.");
} else {
String faceId1 = HumanFaceFactory.instance().loadFace(file1);
String faceId2 = HumanFaceFactory.instance().loadFace(file2);
HumanFace face1 = HumanFaceFactory.instance().getFace(faceId1);
HumanFace face2 = HumanFaceFactory.instance().getFace(faceId2);
try {
// simple hack:
Path path = Paths.get(file1.getAbsolutePath());
Path folder = path.getParent();
Path filename = path.getFileName();
String filestr = filename.toString();
filestr = filestr.split("_ECA.obj")[0];
filestr = filestr + "_landmarks.csv";
face1.loadFeaturePoints(folder.toString(), filestr);
} catch(IOException ex) {
ex.printStackTrace();
}
try {
// simple hack:
Path path = Paths.get(file2.getAbsolutePath());
Path folder = path.getParent();
Path filename = path.getFileName();
String filestr = filename.toString();
filestr = filestr.split("_ECA.obj")[0];
filestr = filestr + "_landmarks.csv";
face2.loadFeaturePoints(folder.toString(), filestr);
} catch(IOException ex) {
ex.printStackTrace();
}
//this.project.setPrimaryFace(face1);
//this.project.addFace(face1);
this.project.setFaces(List.of(face1, face2));
createFaceToFaceTab(face1, face2, "1:1");
javax.swing.table.DefaultTableModel model = (javax.swing.table.DefaultTableModel) jTable1.getModel();
if (selectedRows.size() == 2) {
String name1 = model.getValueAt(selectedRows.get(0), 1).toString();
String name2 = model.getValueAt(selectedRows.get(1), 1).toString();
HumanFace face1 = project.getFaceByName(name1);
HumanFace face2 = project.getFaceByName(name2);
createFaceToFaceTab(face1, face2, name1 + ":" + name2);
} else {
JOptionPane.showMessageDialog(this, "Select two models");
}
}*/
/**
* Creates and opens tab with one face
* @param face which will be analyzed
......
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package cz.fidentis.analyst.gui;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Matej Kovar
*/
public class DefaultModelsTableModel extends DefaultTableModel {
public DefaultModelsTableModel(Object[] columnNames, int rowCount) {
super(columnNames, rowCount);
}
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
};
@Override
public Class getColumnClass(int columnIndex) {
return types [columnIndex];}
@Override
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;
}
}
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