All pastes #901453 Raw Edit

View_browse

public java v1 · immutable
·published 2008-02-12 17:48 UTC
rendered paste body
/* * View_browse.java * * Created on February 11, 2008, 6:05 PM */package GUI;import java.util.ArrayList;import java.text.DecimalFormat;import Business.BusinessManager;import Business.product;import Business.category;/** * This class contains a Java Applet which allows a user to browse through the categories * and products with 4 simple buttons. *  * @author  ScarS @ HvA */public class View_browse extends javax.swing.JApplet {  private BusinessManager businessManager;  private int categoryId,  productId;  private boolean prevCatDisabled = true,  prevProdDisabled = true,  nextCatDisabled = false,  nextProdDisabled = false;  /**   * Add linebreaks (paragraphs) to a string so it will not show up as one long line but instead    * breaks up so the text will be displayed under eachother. The lines are checked if they contain   * a white space so the string is preferably being broken into pieces on white spaces.   *    * function created by ScarS @ HvA   *    * @param str The string being put in that has to be split up   * @param breakLen The maximum character length of each line   * @return ret The formatted string   */  private String addLinebreaks(String str, int breakLen) {    /** if the string is already smaller then the break length return it */    if (str.length() < breakLen) {      return str;    }    /** offset where to break the string, has to start at 0 */    int indexNum = 0;    String tmp = "", ret = "";    for (int i = 0,  j = 0; i < str.length(); i += breakLen, j++) {      /** take the part of the string that has to be processed */      tmp = str.substring(indexNum);      /** check if the string still has to be broken */      if (tmp.length() > breakLen) {        /** break the string into the maximum break length */        tmp = tmp.substring(0, breakLen);        /** remove white spaces from the start and end of the line */        for (int k = 0; k < tmp.length(); k++) {          if (tmp.startsWith(" ")) {            tmp = tmp.substring(1, tmp.length());          }          if (tmp.endsWith(" ")) {            tmp = tmp.substring(0, tmp.length() - 1);          }        }        /** check if the line contains a white space */        if (tmp.contains(" ")) {          /** try to split the line into words */          try {            /** split the line into words on white spaces */            String[] subTmp = tmp.split(" ");            String subStr = "";            /** add the complete words to the line */            for (int k = 0; k < (subTmp.length - 1); k++) {              subStr += subTmp[k] + " ";            }            /** set the break offset */            indexNum = (ret.length() + subStr.length() - (3 * j));            /** add the line to the return string */            ret += subStr.substring(0, subStr.length() - 1) + "<p>";          /** if the line has not been able to break on white spaces add it to the return string with an ending dash */          } catch (ArrayIndexOutOfBoundsException e) {            indexNum += breakLen;            ret += tmp + "-<p>";          }        /** if the line does not contain white spaces add it to the return string with an ending dash */        } else {          indexNum += breakLen;          ret += tmp + "-<p>";        }        /** if this is the last part of the string add the last line */        if (str.substring(indexNum).length() <= breakLen) {          ret += str.substring(indexNum);        }      }      i = indexNum;    }    /** return the formatted string */    return "<html>" + ret + "</html>";  }  private void updateProduct() {    ArrayList products = businessManager.getProducts();    int lastProdId = 0;    double prodPrice = 0.00;    String prodName = "", prodDescr = "";    for (int i = 0; i < products.size(); i++) {      product prod = (product) products.get(i);      if (i == 0) {        productId = prod.getProduct_id();        prodName = prod.getName();        prodPrice = prod.getPrice();        prodDescr = prod.getDescription();      }      lastProdId = prod.getProduct_id();    }    DecimalFormat Currency = new DecimalFormat("#0.00");    lblCatName.setText(businessManager.mainModel.getCategoryName());    lblName.setText(prodName);    lblPrice.setText("€ " + Currency.format(prodPrice));    lblDescr.setText(addLinebreaks(prodDescr, 50));    btnPrevProd.setEnabled(false);    prevProdDisabled = true;    if (productId == lastProdId) {      btnNextProd.setEnabled(false);      nextProdDisabled = true;    } else if (nextProdDisabled) {      btnNextProd.setEnabled(true);      nextProdDisabled = false;    }  }  /** Initializes the applet View_browse */  public void init() {    this.setSize(450, 300);    businessManager = new BusinessManager();    try {      java.awt.EventQueue.invokeAndWait(new Runnable() {        public void run() {          initComponents();          ArrayList categories = businessManager.dataManager.getCategoriesById();          category cat = (category) categories.get(0);          categoryId = cat.getCategory_id();          businessManager.mainModel.setCategory(categoryId);          btnPrevCat.setEnabled(false);                    updateProduct();        }      });    } catch (Exception ex) {      ex.printStackTrace();    }  }  /** This method is called from within the init() method to   * initialize the form.   * WARNING: Do NOT modify this code. The content of this method is   * always regenerated by the Form Editor.   */  // <editor-fold defaultstate="collapsed" desc="Generated Code">  private void initComponents() {    btnPrevCat = new javax.swing.JButton();    btnPrevProd = new javax.swing.JButton();    btnNextProd = new javax.swing.JButton();    btnNextCat = new javax.swing.JButton();    lblBrowse = new javax.swing.JLabel();    lblCatNameHead = new javax.swing.JLabel();    lblNameHead = new javax.swing.JLabel();    lblDescrHead = new javax.swing.JLabel();    lblCatName = new javax.swing.JLabel();    lblName = new javax.swing.JLabel();    lblDescr = new javax.swing.JLabel();    lblPriceHead = new javax.swing.JLabel();    lblPrice = new javax.swing.JLabel();    btnPrevCat.setText("Previous category");    btnPrevCat.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        btnPrevCatActionPerformed(evt);      }    });    btnPrevProd.setText("Previous product");    btnPrevProd.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        btnPrevProdActionPerformed(evt);      }    });    btnNextProd.setText("Next product");    btnNextProd.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        btnNextProdActionPerformed(evt);      }    });    btnNextCat.setText("Next category");    btnNextCat.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(java.awt.event.ActionEvent evt) {        btnNextCatActionPerformed(evt);      }    });    lblBrowse.setFont(new java.awt.Font("Tahoma", 1, 18));    lblBrowse.setText("Browse products");    lblCatNameHead.setFont(new java.awt.Font("Tahoma", 1, 12));    lblCatNameHead.setText("Category name:");    lblNameHead.setFont(new java.awt.Font("Tahoma", 1, 12));    lblNameHead.setText("Product name:");    lblDescrHead.setFont(new java.awt.Font("Tahoma", 1, 12));    lblDescrHead.setText("Product description:");    lblCatName.setFont(new java.awt.Font("Tahoma", 0, 12));    lblCatName.setText("Category name");    lblName.setFont(new java.awt.Font("Tahoma", 0, 12));    lblName.setText("Product name");    lblDescr.setFont(new java.awt.Font("Tahoma", 0, 12));    lblDescr.setText("Product description");    lblDescr.setVerticalAlignment(javax.swing.SwingConstants.TOP);    lblPriceHead.setFont(new java.awt.Font("Tahoma", 1, 12));    lblPriceHead.setText("Product price:");    lblPrice.setFont(new java.awt.Font("Tahoma", 0, 12));    lblPrice.setText("Product price");    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());    getContentPane().setLayout(layout);    layout.setHorizontalGroup(      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()        .addGap(21, 21, 21)        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)          .addGroup(layout.createSequentialGroup()            .addGap(28, 28, 28)            .addComponent(lblCatNameHead)            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)            .addComponent(lblCatName, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE))          .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)              .addComponent(lblPriceHead)              .addComponent(lblNameHead)              .addComponent(lblDescrHead))            .addGap(14, 14, 14)            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)              .addComponent(lblDescr, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)              .addComponent(lblName, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)              .addComponent(lblPrice, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE))))        .addGap(19, 19, 19))      .addGroup(layout.createSequentialGroup()        .addGap(84, 84, 84)        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)          .addGroup(layout.createSequentialGroup()            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)              .addComponent(btnPrevCat)              .addComponent(btnPrevProd))            .addGap(26, 26, 26)            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)              .addComponent(btnNextProd)              .addComponent(btnNextCat)))          .addGroup(layout.createSequentialGroup()            .addGap(67, 67, 67)            .addComponent(lblBrowse)))        .addContainerGap(111, Short.MAX_VALUE))    );    layout.setVerticalGroup(      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()        .addContainerGap()        .addComponent(lblBrowse)        .addGap(18, 18, 18)        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)          .addComponent(btnNextCat)          .addGroup(layout.createSequentialGroup()            .addComponent(btnPrevCat)            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)              .addComponent(btnPrevProd)              .addComponent(btnNextProd))))        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 29, Short.MAX_VALUE)        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)          .addComponent(lblCatNameHead)          .addComponent(lblCatName))        .addGap(15, 15, 15)        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)          .addComponent(lblNameHead)          .addGroup(layout.createSequentialGroup()            .addComponent(lblName)            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)              .addComponent(lblPriceHead)              .addComponent(lblPrice))))        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)          .addComponent(lblDescr, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)          .addComponent(lblDescrHead))        .addContainerGap())    );  }// </editor-fold>  private void btnPrevCatActionPerformed(java.awt.event.ActionEvent evt) {                                               // TODO add your handling code here:    try {      ArrayList categories = businessManager.dataManager.getCategoriesById();      int firstCatId = 0, prevCatId = 0;      for (int i = 0; i < categories.size(); i++) {        category cat = (category) categories.get(i);        if (i == 0) {          firstCatId = cat.getCategory_id();        }        if (categoryId == cat.getCategory_id()) {          categoryId = prevCatId;        }        prevCatId = cat.getCategory_id();      }      if (categoryId == firstCatId) {        btnPrevCat.setEnabled(false);        prevCatDisabled = true;      }      if (nextCatDisabled == true) {        btnNextCat.setEnabled(true);        nextCatDisabled = false;      }      businessManager.mainModel.setCategory(categoryId);      updateProduct();    } catch (Exception e) {      System.out.println("error: " + e);    }    }                                            private void btnNextCatActionPerformed(java.awt.event.ActionEvent evt) {                                               // TODO add your handling code here:    try {      ArrayList categories = businessManager.dataManager.getCategoriesById();      int j = 0, lastCatId = 0;      for (int i = 1; i < (categories.size() + 1); i++) {        category cat = (category) categories.get(i - 1);        if (categoryId == cat.getCategory_id()) {          j = i + 1;        }        if (j == i) {          categoryId = cat.getCategory_id();        }        lastCatId = cat.getCategory_id();      }      if (categoryId == lastCatId) {        btnNextCat.setEnabled(false);        nextCatDisabled = true;      }      if (prevCatDisabled == true) {        btnPrevCat.setEnabled(true);        prevCatDisabled = false;      }      businessManager.mainModel.setCategory(categoryId);      updateProduct();    } catch (Exception e) {      System.out.println("error: " + e);    }      }                                            private void btnPrevProdActionPerformed(java.awt.event.ActionEvent evt) {                                                // TODO add your handling code here:    try {      ArrayList products = businessManager.getProducts();      int firstProdId = 0, prevProdId = 0;      double prodPrice = 0.00, prevProdPrice = 0.00;      String prodName = null, prodDescr = null, prevProdName = null, prevProdDescr = null;      for (int i = 0; i < products.size(); i++) {        product prod = (product) products.get(i);        if (i == 0) {          firstProdId = prod.getProduct_id();        }        if (productId == prod.getProduct_id()) {          productId = prevProdId;          prodName = prevProdName;          prodPrice = prevProdPrice;          prodDescr = prevProdDescr;        }        prevProdId = prod.getProduct_id();        prevProdName = prod.getName();        prevProdPrice = prod.getPrice();        prevProdDescr = prod.getDescription();      }      if (productId == firstProdId) {        btnPrevProd.setEnabled(false);        prevProdDisabled = true;      }      if (nextProdDisabled == true) {        btnNextProd.setEnabled(true);        nextProdDisabled = false;      }      DecimalFormat Currency = new DecimalFormat("#0.00");      lblName.setText(prodName);      lblPrice.setText("€ " + Currency.format(prodPrice));      lblDescr.setText(addLinebreaks(prodDescr, 50));    } catch (Exception e) {      System.out.println("error: " + e);    }      }                                             private void btnNextProdActionPerformed(java.awt.event.ActionEvent evt) {                                                // TODO add your handling code here:    try {      ArrayList products = businessManager.getProducts();      int j = 0, lastProdId = 0;      double prodPrice = 0.00;      String prodName = null, prodDescr = null;      for (int i = 1; i < (products.size() + 1); i++) {        product prod = (product) products.get(i - 1);        if (productId == prod.getProduct_id()) {          j = i + 1;        }        if (j == i) {          productId = prod.getProduct_id();          prodName = prod.getName();          prodPrice = prod.getPrice();          prodDescr = prod.getDescription();        }        lastProdId = prod.getProduct_id();      }      if (productId == lastProdId) {        btnNextProd.setEnabled(false);        nextProdDisabled = true;      }      if (prevProdDisabled == true) {        btnPrevProd.setEnabled(true);        prevProdDisabled = false;      }      DecimalFormat Currency = new DecimalFormat("#0.00");      lblName.setText(prodName);      lblPrice.setText("€ " + Currency.format(prodPrice));      lblDescr.setText(addLinebreaks(prodDescr, 50));    } catch (Exception e) {      System.out.println("error: " + e);    }      }                                             // Variables declaration - do not modify  private javax.swing.JButton btnNextCat;  private javax.swing.JButton btnNextProd;  private javax.swing.JButton btnPrevCat;  private javax.swing.JButton btnPrevProd;  private javax.swing.JLabel lblBrowse;  private javax.swing.JLabel lblCatName;  private javax.swing.JLabel lblCatNameHead;  private javax.swing.JLabel lblDescr;  private javax.swing.JLabel lblDescrHead;  private javax.swing.JLabel lblName;  private javax.swing.JLabel lblNameHead;  private javax.swing.JLabel lblPrice;  private javax.swing.JLabel lblPriceHead;  // End of variables declaration}