Java tutorial
/* * 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 Interface.FoodCollectionSupervisor; import Business.Community.Community; import Business.Employee.CitizenEmployee; import Business.Employee.Employee; import Business.Employee.FoodCollectionSupervisorEmployee; import Business.Organization.Organization; import Business.UserAccount.UserAccount; import Business.WorkQueue.FoodCollectionWorkRequest; import Business.WorkQueue.WorkRequest; import java.awt.CardLayout; import java.awt.Color; import java.util.Date; import javax.swing.JOptionPane; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; /** * * @author kunal */ public class TypeOfFoodCitizens extends javax.swing.JPanel { /** * Creates new form TypeOfFoodCitizens */ private JPanel userProcessContainer; private UserAccount account; private Community community; private Organization organization; public TypeOfFoodCitizens(JPanel userProcessContainer, UserAccount account) { initComponents(); this.userProcessContainer = userProcessContainer; this.account = account; FoodCollectionSupervisorEmployee empSupervisor = (FoodCollectionSupervisorEmployee) account.getEmployee(); community = empSupervisor.getCommunityAssociated(); organization = community.getFoodCollectionOrg(); } /** * 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">//GEN-BEGIN:initComponents private void initComponents() { jDateChooser1 = new com.toedter.calendar.JDateChooser(); jDateChooser2 = new com.toedter.calendar.JDateChooser(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); btnCalculate = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); btnBack1 = new javax.swing.JButton(); jDateChooser1.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N jDateChooser2.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N jLabel2.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N jLabel2.setText("From Date"); jLabel3.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N jLabel3.setText("To Date"); btnCalculate.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N btnCalculate.setText("View Results >>"); btnCalculate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnCalculateActionPerformed(evt); } }); jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N jLabel1.setText("Types of Food Donated by all the Citizen in given Date Range"); btnBack1.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N btnBack1.setText("<< Back"); btnBack1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnBack1ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup().addGap(52, 52, 52).addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3) .addGroup(layout.createSequentialGroup().addComponent(jLabel2).addGap(18, 18, 18) .addGroup(layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(btnCalculate) .addGroup(layout .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jDateChooser2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jDateChooser1, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE)))))) .addGroup(layout.createSequentialGroup().addGap(132, 132, 132).addComponent(jLabel1)) .addGroup(layout.createSequentialGroup().addContainerGap().addComponent(btnBack1))) .addContainerGap())); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup( layout.createSequentialGroup().addGap(145, 145, 145).addComponent(jLabel2)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addContainerGap().addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jDateChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(58, 58, 58) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3).addComponent(jDateChooser2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(43, 43, 43).addComponent(btnCalculate) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 384, Short.MAX_VALUE) .addComponent(btnBack1).addContainerGap())); }// </editor-fold>//GEN-END:initComponents private void btnCalculateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCalculateActionPerformed // TODO add your handling code here: Date toDate1 = jDateChooser1.getDate(); Date toDate2 = jDateChooser2.getDate(); if ((toDate1 == null) || (toDate2 == null)) { JOptionPane.showMessageDialog(null, "Invalid date..Kindly enter valid date."); return; } long fromDate = (jDateChooser1.getDate().getTime()) / (1000 * 60 * 60 * 24); long toDate = (jDateChooser2.getDate().getTime()) / (1000 * 60 * 60 * 24); int homeFoodType = 0; int cannedType = 0; int purchasedType = 0; for (WorkRequest request : organization.getWorkQueue().getWorkRequestList()) { long requestDate = (request.getRequestDate().getTime()) / (1000 * 60 * 60 * 24); Employee e = request.getSender().getEmployee(); if (e instanceof CitizenEmployee) { if ((requestDate >= fromDate) && (requestDate <= toDate)) { if (!request.getStatus().equalsIgnoreCase("New Request")) { if (((FoodCollectionWorkRequest) request).getFood().getFoodType() .equalsIgnoreCase("Canned Food")) { cannedType++; } else if (((FoodCollectionWorkRequest) request).getFood().getFoodType() .equalsIgnoreCase("Home made Food")) { homeFoodType++; } else if (((FoodCollectionWorkRequest) request).getFood().getFoodType() .equalsIgnoreCase("Purchased Food")) { purchasedType++; } } } // else{ // // JOptionPane.showMessageDialog(null, "There are no records for this search criteria."); // } } } DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.setValue(cannedType, "Number of food collected", "Canned Food"); dataset.setValue(purchasedType, "Number of food collected", "Purchased Food"); dataset.setValue(homeFoodType, "Number of food collected", "Home made Food"); JFreeChart chart = ChartFactory.createBarChart("Citizens-Different types of food collected", "Types of food", "Number of food collected", dataset, PlotOrientation.VERTICAL, false, true, false); CategoryPlot plot = chart.getCategoryPlot(); plot.setRangeGridlinePaint(Color.BLUE); ChartFrame frame = new ChartFrame("Bar Chart for Types of food collected", chart); frame.setVisible(true); frame.setSize(450, 350); }//GEN-LAST:event_btnCalculateActionPerformed private void btnBack1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnBack1ActionPerformed // TODO add your handling code here: userProcessContainer.remove(this); CardLayout layout = (CardLayout) userProcessContainer.getLayout(); layout.previous(userProcessContainer); }//GEN-LAST:event_btnBack1ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnBack1; private javax.swing.JButton btnCalculate; private com.toedter.calendar.JDateChooser jDateChooser1; private com.toedter.calendar.JDateChooser jDateChooser2; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; // End of variables declaration//GEN-END:variables }