<%@ jet package="cruise.ui.jfx.templates.impl" imports="java.util.* cruise.model.abstractObjects.BackingObject cruise.umple.compiler.* cruise.ui.jfx.* " class="Table" skeleton="../jfx.skeleton" %> <% BackingObject bckObject = (BackingObject) argument; String preffix=JFXProvider.properties.getProperty(cruise.model.Constants.PACKAGE_PREFIX); %> package <%=preffix + ((bckObject.getPackageName().trim().length()>0)?("." + bckObject.getPackageName()):"")%>; import dao.utils.DAOUtils; import <%=(bckObject.getPackageName()!=null&&bckObject.getPackageName().trim().length()>0)?(bckObject.getPackageName().trim()+"."):""%><%=bckObject.getClassName()%>; import java.util.List; import javax.swing.JComponent; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; public class <%=bckObject.getClassName()%>Table { static List<<%=bckObject.getClassName()%>> data = DAOUtils.getDAOFactory().get<%=bckObject.getClassName()%>DAO().findAll(); JTable table; public <%=bckObject.getClassName()%> getSelected<%=bckObject.getClassName()%>() { int index = table.getSelectedRow(); <%=bckObject.getClassName()%> a<%=bckObject.getClassName()%> = (<%=bckObject.getClassName()%>)data.get(index == -1 ? 0 : index); return a<%=bckObject.getClassName()%>; } public void deleteSlected<%=bckObject.getClassName()%>() { int index = table.getSelectedRow(); data.remove(index == -1 ? 0 : index); restructureTable(); } public void refresh() { data = DAOUtils.getDAOFactory().get<%=bckObject.getClassName()%>DAO().findAll(); restructureTable(); } private void restructureTable() { table.setModel(new <%=bckObject.getClassName()%>Model()); table.validate(); table.repaint(); } public JComponent create() { JScrollPane scrollPane; table = new JTable(); table.setModel(new <%=bckObject.getClassName()%>Model()); table.getTableHeader().setReorderingAllowed(false); scrollPane = new JScrollPane( table ); data = DAOUtils.getDAOFactory().get<%=bckObject.getClassName()%>DAO().findAll(); return scrollPane; } static class <%=bckObject.getClassName()%>Model extends AbstractTableModel { String[] colum = new String[<%=1+ bckObject.getAttVariables().size()+bckObject.getKeysAttributes().size()%>]; public <%=bckObject.getClassName()%>Model(){ <% int columnCount=0; for (AttributeVariable attVar: bckObject.getKeysAttributes()) { %> colum[<%=columnCount++%>]="<%=attVar.getUpperCaseName()%>"; <%}%> <% for (AttributeVariable attVar: bckObject.getAttVariables()) { %> colum[<%=columnCount++%>]="<%=attVar.getUpperCaseName()%>"; <%}%> colum[<%=columnCount%>]="Type"; } @Override public int getRowCount() { return data.size(); } @Override public int getColumnCount() { return colum.length; } @Override public Object getValueAt(int rowIndex, int columnIndex) { <%=bckObject.getClassName()%> a<%=bckObject.getClassName()%> = (<%=bckObject.getClassName()%>)data.get(rowIndex); <% columnCount=0; for (AttributeVariable attVar: bckObject.getKeysAttributes()) { %> if(columnIndex ==<%=columnCount++%>) { return a<%=bckObject.getClassName()%>.get<%=attVar.getUpperCaseName()%>(); } <%}%> <% for (AttributeVariable attVar: bckObject.getAttVariables()) { %> if(columnIndex ==<%=columnCount++%>) { return a<%=bckObject.getClassName()%>.get<%=attVar.getUpperCaseName()%>(); } <%}%> return a<%=bckObject.getClassName()%>.getClass().getName(); } @Override public String getColumnName(int column) { return colum[column]; } } }