package GUI;
import Handler.; import Model.; import java.text.; import java.util.; import javax.swing.*;
public class MemberViewer extends javax.swing.JPanel { MainViewer mv; MemberViewerHandler mvh = new MemberViewerHandler(); Project prj = new Project(); int ID; String CommonName; String ProjectName; String Manager;
public MemberViewer(int ID, String CommonName, String ProjectName, String Manager)
{
try
{
this.ID = ID;
this.CommonName = CommonName;
this.ProjectName = ProjectName;
this.Manager = Manager;
initComponents();
displayProjectProperties();
populateComboBoxes();
mvh.processMemberList(ID + "", cbDateFrom.getSelectedItem() + "", cbDateTo.getSelectedItem() + "");
displayMembers();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
}
}
public void setMainViewer(MainViewer mv)
{
this.mv = mv;
}
private void displayProjectProperties()
{
lblIDDisplay.setText(ID + "");
lblCommonNameDisplay.setText(CommonName);
lblProjectNameDisplay.setText(ProjectName);
lblManagerDisplay.setText(Manager);
}
private void populateComboBoxes()throws Exception
{
mvh.processMemberListDate(ID + "");
cbDateFrom.setModel(new javax.swing.DefaultComboBoxModel<>(mvh.returnMemberListDate()));
cbDateFrom.setSelectedIndex(mvh.returnMemberListDate().length - 1);
cbDateTo.setModel(new javax.swing.DefaultComboBoxModel<>(mvh.returnMemberListDate()));
cbDateTo.setSelectedIndex(mvh.returnMemberListDate().length - 1);
}
private void displayMembers()throws Exception
{
String MemberColumn[] = { "Member" };
List list = new ArrayList(Arrays.asList(MemberColumn));
list.addAll(Arrays.asList(mvh.returnMemberListDate()));
Object[] ColumnHeader = list.toArray();
tableMemberViewer.setModel(new javax.swing.table.DefaultTableModel(mvh.returnMemberList(), ColumnHeader));
tableMemberViewer.getColumnModel().getColumn(0).setPreferredWidth(250);
tableMemberViewer.setDefaultEditor(Object.class, null);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
panelProperties = new javax.swing.JPanel();
panelEdge = new javax.swing.JPanel();
lblID = new javax.swing.JLabel();
lblCommonName = new javax.swing.JLabel();
lblProjectName = new javax.swing.JLabel();
lblManager = new javax.swing.JLabel();
btnBack = new javax.swing.JButton();
lblIDDisplay = new javax.swing.JLabel();
lblCommonNameDisplay = new javax.swing.JLabel();
lblProjectNameDisplay = new javax.swing.JLabel();
lblManagerDisplay = new javax.swing.JLabel();
scrollpaneMemeberViewer = new javax.swing.JScrollPane();
tableMemberViewer = new javax.swing.JTable();
lblDateFrom = new javax.swing.JLabel();
cbDateFrom = new javax.swing.JComboBox<>();
lblDateTo = new javax.swing.JLabel();
cbDateTo = new javax.swing.JComboBox<>();
btnSearchDate = new javax.swing.JButton();
panelProperties.setBackground(java.awt.Color.blue);
panelEdge.setBackground(java.awt.Color.white);
javax.swing.GroupLayout panelEdgeLayout = new javax.swing.GroupLayout(panelEdge);
panelEdge.setLayout(panelEdgeLayout);
panelEdgeLayout.setHorizontalGroup(
panelEdgeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 0, Short.MAX_VALUE)
);
panelEdgeLayout.setVerticalGroup(
panelEdgeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 10, Short.MAX_VALUE)
);
lblID.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
lblID.setForeground(new java.awt.Color(255, 255, 255));
lblID.setText("Project ID: ");
lblCommonName.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
lblCommonName.setForeground(new java.awt.Color(255, 255, 255));
lblCommonName.setText("Project Common Name: ");
lblProjectName.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
lblProjectName.setForeground(new java.awt.Color(255, 255, 255));
lblProjectName.setText("NSP Project Name: ");
lblManager.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
lblManager.setForeground(new java.awt.Color(255, 255, 255));
lblManager.setText("Project Manager: ");
btnBack.setBackground(new java.awt.Color(0, 51, 153));
btnBack.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
btnBack.setForeground(new java.awt.Color(255, 255, 255));
btnBack.setText("BACK");
btnBack.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
btnBack.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
btnBack.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnBackActionPerformed(evt);
}
});
lblIDDisplay.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
lblIDDisplay.setForeground(new java.awt.Color(255, 255, 255));
lblIDDisplay.setText("Project ID");
lblCommonNameDisplay.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
lblCommonNameDisplay.setForeground(new java.awt.Color(255, 255, 255));
lblCommonNameDisplay.setText("Project Common Name");
lblProjectNameDisplay.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
lblProjectNameDisplay.setForeground(new java.awt.Color(255, 255, 255));
lblProjectNameDisplay.setText("NSP Project Name");
lblManagerDisplay.setFont(new java.awt.Font("Arial", 1, 12)); // NOI18N
lblManagerDisplay.setForeground(new java.awt.Color(255, 255, 255));
lblManagerDisplay.setText("Project Manager");
javax.swing.GroupLayout panelPropertiesLayout = new javax.swing.GroupLayout(panelProperties);
panelProperties.setLayout(panelPropertiesLayout);
panelPropertiesLayout.setHorizontalGroup(
panelPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelEdge, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(panelPropertiesLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblID)
.addComponent(lblIDDisplay))
.addGap(61, 61, 61)
.addGroup(panelPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPropertiesLayout.createSequentialGroup()
.addComponent(lblCommonName)
.addGap(90, 90, 90))
.addGroup(panelPropertiesLayout.createSequentialGroup()
.addComponent(lblCommonNameDisplay)
.addGap(96, 96, 96)))
.addGroup(panelPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblProjectNameDisplay)
.addComponent(lblProjectName))
.addGap(107, 107, 107)
.addGroup(panelPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblManagerDisplay)
.addComponent(lblManager))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 194, Short.MAX_VALUE)
.addComponent(btnBack, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
panelPropertiesLayout.setVerticalGroup(
panelPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPropertiesLayout.createSequentialGroup()
.addGroup(panelPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelPropertiesLayout.createSequentialGroup()
.addGap(8, 8, 8)
.addGroup(panelPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblID)
.addComponent(lblCommonName)
.addComponent(lblProjectName)
.addComponent(lblManager))
.addGap(13, 13, 13)
.addGroup(panelPropertiesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblIDDisplay)
.addComponent(lblCommonNameDisplay)
.addComponent(lblProjectNameDisplay)
.addComponent(lblManagerDisplay)))
.addGroup(panelPropertiesLayout.createSequentialGroup()
.addContainerGap()
.addComponent(btnBack, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE)
.addComponent(panelEdge, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
tableMemberViewer.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"Gio", "8.0", "8.0", "8.0", "8.0", "8.0"},
{"Max", "8.0", "8.0", "8.0", "8.0", "8.0"},
{"Edward", "8.0", "8.0", "8.0", "8.0", "8.0"}
},
new String [] {
"Members", "06/01", "06/02", "06/03", "06/04", "06/05"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tableMemberViewer.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
tableMemberViewer.getTableHeader().setReorderingAllowed(false);
scrollpaneMemeberViewer.setViewportView(tableMemberViewer);
if (tableMemberViewer.getColumnModel().getColumnCount() > 0) {
tableMemberViewer.getColumnModel().getColumn(0).setResizable(false);
tableMemberViewer.getColumnModel().getColumn(0).setPreferredWidth(250);
}
lblDateFrom.setText("Date From:");
cbDateFrom.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
lblDateTo.setText("Date To:");
cbDateTo.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
btnSearchDate.setBackground(new java.awt.Color(0, 51, 153));
btnSearchDate.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
btnSearchDate.setForeground(new java.awt.Color(255, 255, 255));
btnSearchDate.setText("SEARCH DATE");
btnSearchDate.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
btnSearchDate.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
btnSearchDate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSearchDateActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelProperties, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(scrollpaneMemeberViewer)
.addGroup(layout.createSequentialGroup()
.addComponent(lblDateFrom)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(cbDateFrom, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(lblDateTo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(cbDateTo, javax.swing.GroupLayout.PREFERRED_SIZE, 131, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnSearchDate, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(panelProperties, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblDateFrom)
.addComponent(cbDateFrom, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblDateTo)
.addComponent(cbDateTo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnSearchDate, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(scrollpaneMemeberViewer, javax.swing.GroupLayout.DEFAULT_SIZE, 366, Short.MAX_VALUE)
.addContainerGap())
);
}// </editor-fold>
private void btnBackActionPerformed(java.awt.event.ActionEvent evt) {
mv.displayProjects();
}
private void btnSearchDateActionPerformed(java.awt.event.ActionEvent evt) {
try
{
Date dateFrom = new SimpleDateFormat("yyyy-MM-dd").parse(cbDateFrom.getSelectedItem() + "");
Date dateTo = new SimpleDateFormat("yyyy-MM-dd").parse(cbDateTo.getSelectedItem() + "");
if(dateFrom.compareTo(dateTo) <= 0)
{
mvh.processMemberList(ID + "", cbDateFrom.getSelectedItem() + "", cbDateTo.getSelectedItem() + "");
displayMembers();
}
else
{
JOptionPane.showMessageDialog(null, "Invalid date period!", "ERROR", JOptionPane.ERROR_MESSAGE);
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE);
}
}
// Variables declaration - do not modify
private javax.swing.JButton btnBack;
private javax.swing.JButton btnSearchDate;
private javax.swing.JComboBox<String> cbDateFrom;
private javax.swing.JComboBox<String> cbDateTo;
private javax.swing.JLabel lblCommonName;
private javax.swing.JLabel lblCommonNameDisplay;
private javax.swing.JLabel lblDateFrom;
private javax.swing.JLabel lblDateTo;
private javax.swing.JLabel lblID;
private javax.swing.JLabel lblIDDisplay;
private javax.swing.JLabel lblManager;
private javax.swing.JLabel lblManagerDisplay;
private javax.swing.JLabel lblProjectName;
private javax.swing.JLabel lblProjectNameDisplay;
private javax.swing.JPanel panelEdge;
private javax.swing.JPanel panelProperties;
private javax.swing.JScrollPane scrollpaneMemeberViewer;
private javax.swing.JTable tableMemberViewer;
// End of variables declaration
}