private void createPackagePanel() {
   myPackageTable =
       ImportLayoutPanel.createTableForPackageEntries(myPackageList, myImportLayoutPanel);
   myPackagesPanel.add(
       PackagePanel.createPackagesPanel(myPackageTable, myPackageList), BorderLayout.CENTER);
 }
Example #2
0
  public EditPackageDialog(JFrame frame) {
    super(frame, "Package Management- Edit a TV Package", true);

    label1 = new JLabel("Package Code: ");
    label2 = new JLabel("Package Name: ");
    error3 = new JLabel("Blank input occured! Please reenter it.");
    label3 = new JLabel("Charge Price(RM): ");
    error4 = new JLabel("Blank input occured! Please reenter it.");
    error6 = new JLabel("Wrong input format. Please enter in numeric format!");
    label4 = new JLabel("Charge Type: ");
    error5 = new JLabel("Blank input occured! Please reenter it.");
    error7 = new JLabel("You must have at least one programme added to your package.");
    label5 = new JLabel("Programmes: ");
    label6 = new JLabel("Programmes inside this Package: ");

    textfield1 = new JTextField(15);
    textfield2 = new JTextField(15);
    textfield3 = new JTextField(15);
    textfield3.setEditable(false);
    combobox1 = new JComboBox();
    button1 = new JButton("Submit");
    button2 = new JButton("Cancel");
    addBut = new JButton("", new ImageIcon(getClass().getResource("/resources/addtoright.png")));
    rmvBut = new JButton("", new ImageIcon(getClass().getResource("/resources/removetoleft.png")));
    addBut.setBackground(new Color(23, 28, 31));
    rmvBut.setBackground(new Color(23, 28, 31));

    color = new Color(23, 28, 30);
    color1 = new Color(244, 219, 234);
    color2 = new Color(239, 237, 237);
    textfield3.setBackground(color2);

    selPrgList = new LinkedList<>();
    leftModel = new DefaultListModel();
    rightModel = new DefaultListModel();
    for (int i = 0; i < App.prgList.size(); i++) {
      for (int j = 0; j < App.pckgingList.size(); j++) {
        if (PackagePanel.pkgtemp[0].equalsIgnoreCase(App.pckgingList.get(j).getPkgCode())) {
          if (App.pckgingList
              .get(j)
              .getProgCode()
              .equalsIgnoreCase(App.prgList.get(i).getProgCode())) {
            selPrgList.add(App.pckgingList.get(j).getProgCode());
            ((DefaultListModel) rightModel)
                .addElement(
                    App.pckgingList.get(j).getProgCode() + "-" + App.prgList.get(i).getProgTitle());
          }
        }
      }
    }
    selPrg = selPrgList.toArray(new String[selPrgList.size()]);

    for (int i = 0; i < App.prgList.size(); i++) {
      boolean check = false;
      for (int j = 0; j < selPrg.length; j++) {

        if (selPrg[j].equalsIgnoreCase(App.prgList.get(i).getProgCode())) {
          check = true;
          break;
        }
      }
      if (check == false) {
        if (!(App.prgList.get(i).getPrgStatus().equalsIgnoreCase("TERMINATED"))) {
          ((DefaultListModel) leftModel)
              .addElement(
                  App.prgList.get(i).getProgCode() + "-" + App.prgList.get(i).getProgTitle());
        }
      }
    }

    leftList = new JList(leftModel);
    leftList.setModel(leftModel);
    leftList.setVisibleRowCount(13);
    leftList.setFixedCellWidth(210);
    leftList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    rightList = new JList(rightModel);
    rightList.setModel(rightModel);
    rightList.setVisibleRowCount(13);
    rightList.setFixedCellWidth(210);
    rightList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    leftListScroll = new JScrollPane(leftList);
    leftListScroll.setViewportView(leftList);
    rightListScroll = new JScrollPane(rightList);
    rightListScroll.setViewportView(rightList);

    Container container = getContentPane();
    container.setBackground(color);
    SpringLayout spring = new SpringLayout();

    String[] string1 = {
      "<-----Please Choose a charge type----->", "Monthly", "Quarterly", "Annually"
    };
    combobox1.setModel(new DefaultComboBoxModel(string1));
    error3.setForeground(Color.RED);
    error4.setForeground(Color.RED);
    error5.setForeground(Color.RED);
    error6.setForeground(Color.RED);
    error7.setForeground(Color.RED);
    error3.setVisible(false);
    error4.setVisible(false);
    error5.setVisible(false);
    error6.setVisible(false);
    error7.setVisible(false);
    label1.setForeground(color1);
    label2.setForeground(color1);
    label3.setForeground(color1);
    label4.setForeground(color1);
    label5.setForeground(color1);
    label6.setForeground(color1);

    textfield3.setText(PackagePanel.pkgtemp[0]);
    textfield1.setText(PackagePanel.pkgtemp[1]);
    textfield2.setText(PackagePanel.pkgtemp[2]);
    combobox1.setSelectedItem((String) (PackagePanel.pkgtemp[3]));

    addBut.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {
            try {
              int leftIndex = leftList.getSelectedIndex();
              String toBeAdded = ((String) leftList.getModel().getElementAt(leftIndex));
              LinkedList<String> leftElements = new LinkedList<>();
              for (int p = 0; p < leftList.getModel().getSize(); p++) {
                leftElements.add((String) leftList.getModel().getElementAt(p));
              }

              for (int i = 0; i < leftElements.size(); i++) {
                if ((leftElements.get(i)).equals(toBeAdded)) {
                  leftElements.remove(i);
                  break;
                }
              }

              String[] leftElArr = leftElements.toArray(new String[leftElements.size()]);
              leftList.setListData(leftElArr);
              leftList.revalidate();
              leftList.repaint();

              rightElements = new LinkedList<>();
              for (int z = 0; z < rightList.getModel().getSize(); z++) {
                rightElements.add((String) rightList.getModel().getElementAt(z));
              }
              rightElements.add(toBeAdded);
              rightElArr = rightElements.toArray(new String[rightElements.size()]);
              rightList.setListData(rightElArr);
              rightList.repaint();
              rightList.revalidate();
            } catch (Exception ex) {

              JOptionPane.showMessageDialog(
                  null,
                  "You can only add a TV Programme from the left list.",
                  "Adding error",
                  JOptionPane.INFORMATION_MESSAGE);
            }
          }
        });

    rmvBut.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {
            try {
              int rightIndex = rightList.getSelectedIndex();
              String toBeRemoved = ((String) rightList.getModel().getElementAt(rightIndex));
              LinkedList<String> rightElements = new LinkedList<>();
              for (int p = 0; p < rightList.getModel().getSize(); p++) {
                rightElements.add((String) rightList.getModel().getElementAt(p));
              }

              for (int i = 0; i < rightElements.size(); i++) {
                if ((rightElements.get(i)).equals(toBeRemoved)) {
                  rightElements.remove(i);
                  break;
                }
              }

              rightElArr = rightElements.toArray(new String[rightElements.size()]);
              rightList.setListData(rightElArr);
              rightList.revalidate();
              rightList.repaint();

              LinkedList<String> leftElements = new LinkedList<>();
              for (int z = 0; z < leftList.getModel().getSize(); z++) {
                leftElements.add((String) leftList.getModel().getElementAt(z));
              }
              leftElements.add(toBeRemoved);
              String[] leftElArr = leftElements.toArray(new String[leftElements.size()]);
              leftList.setListData(leftElArr);
              leftList.repaint();
              leftList.revalidate();

            } catch (Exception ex) {

              JOptionPane.showMessageDialog(
                  null,
                  "You can only remove a TV Programme from the right list when right list is filled in with TV Programme.",
                  "Remove error",
                  JOptionPane.INFORMATION_MESSAGE);
            }
          }
        });

    button1.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {

            boolean flag1 = false, flag2 = false, flag3 = false, flag4 = false;

            if ((textfield1.getText().trim() == null)
                || (textfield1.getText().trim().equalsIgnoreCase(""))) {
              error3.setVisible(true);
              flag1 = false;
            } else {
              flag1 = true;
              error3.setVisible(false);
            }

            if ((textfield2.getText().trim() == null)
                || (textfield2.getText().trim().equalsIgnoreCase(""))) {
              error4.setVisible(true);
              error6.setVisible(false);
              flag2 = false;
            } else {
              try {
                flag2 = true;
                error4.setVisible(false);
                error6.setVisible(false);
                double a = Double.valueOf(textfield2.getText().trim()).doubleValue();
              } catch (NumberFormatException ex) {
                error4.setVisible(false);
                error6.setVisible(true);
                flag2 = false;
              }
            }

            if ((((String) combobox1.getSelectedItem()))
                .equals("<-----Please Choose a charge type----->")) {
              error5.setVisible(true);
              flag3 = false;
            } else {
              flag3 = true;
              error5.setVisible(false);
            }

            try {
              if (rightElArr.length >= 1) {

                flag4 = true;
                error7.setVisible(false);

              } else {
                flag4 = false;
                error7.setVisible(true);
              }
            } catch (NullPointerException npe) {
              flag4 = true;
            }

            if ((flag1 == true) && (flag2 == true) && (flag3 == true) && (flag4 == true)) {
              for (int i = 0; i < App.pkgList.size(); i++) {
                if (App.pkgList.get(i).getPkgCode().equalsIgnoreCase(PackagePanel.pkgtemp[0])) {
                  App.pkgList.get(i).setPkgName(textfield1.getText());
                  break;
                }
              }

              for (int i = 0; i < App.pkgList.size(); i++) {
                if (App.pkgList.get(i).getPkgCode().equalsIgnoreCase(PackagePanel.pkgtemp[0])) {
                  App.pkgList
                      .get(i)
                      .setChargePrice(Double.valueOf(textfield2.getText().trim()).doubleValue());
                  break;
                }
              }

              for (int i = 0; i < App.pkgList.size(); i++) {
                if (App.pkgList.get(i).getPkgCode().equalsIgnoreCase(PackagePanel.pkgtemp[0])) {
                  App.pkgList.get(i).setChargeType(combobox1.getSelectedItem().toString());
                  break;
                }
              }

              if (rightElArr != null) {
                for (int i = 0; i < App.pckgingList.size(); i++) {
                  if (App.pckgingList
                      .get(i)
                      .getPkgCode()
                      .equalsIgnoreCase(PackagePanel.pkgtemp[0])) {
                    App.pckgingList.remove(i);
                    i--;
                  }
                }

                for (int i = 0; i < rightElArr.length; i++) {
                  App.pckgingList.addLast(
                      new Packaging(PackagePanel.pkgtemp[0], (rightElArr[i]).substring(0, 4)));
                }
              } else {
                for (int i = 0; i < App.prgList.size(); i++) {
                  for (int j = 0; j < App.pckgingList.size(); j++) {
                    if (PackagePanel.pkgtemp[0].equalsIgnoreCase(
                        App.pckgingList.get(j).getPkgCode())) {
                      if (App.pckgingList
                          .get(j)
                          .getProgCode()
                          .equalsIgnoreCase(App.prgList.get(i).getProgCode())) {
                        selPrgList.add(App.pckgingList.get(j).getProgCode());
                        ((DefaultListModel) rightModel)
                            .addElement(
                                App.pckgingList.get(j).getProgCode()
                                    + "-"
                                    + App.prgList.get(i).getProgTitle());
                      }
                    }
                  }
                }
              }

              JOptionPane.showMessageDialog(
                  null,
                  "You have successfully changed the details of TV Package "
                      + PackagePanel.pkgtemp[0]
                      + " !",
                  PackagePanel.pkgtemp[0] + " edited",
                  JOptionPane.PLAIN_MESSAGE);
              LogFile log =
                  new LogFile(
                      App.user, "has edited a TV Package '" + PackagePanel.pkgtemp[0] + "'.");
              App.logList.add(log);
              dispose();
            }
          }
        });

    button2.addActionListener(
        new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {
            int closeCf =
                JOptionPane.showConfirmDialog(
                    null,
                    "Stop Adding? All the changes will not be saved.",
                    "Cancel Adding",
                    JOptionPane.WARNING_MESSAGE);
            if (closeCf == JOptionPane.YES_OPTION) {
              dispose();
            }
          }
        });

    container.setLayout(spring);

    container.add(label1);
    container.add(textfield3);

    spring.putConstraint(SpringLayout.WEST, label1, 20, SpringLayout.WEST, container);
    spring.putConstraint(SpringLayout.NORTH, label1, 15, SpringLayout.NORTH, container);
    spring.putConstraint(SpringLayout.WEST, textfield3, 80, SpringLayout.EAST, label1);
    spring.putConstraint(SpringLayout.NORTH, textfield3, 15, SpringLayout.NORTH, container);

    container.add(label2);
    container.add(textfield1);
    container.add(error3);

    spring.putConstraint(SpringLayout.WEST, label2, 20, SpringLayout.WEST, container);
    spring.putConstraint(SpringLayout.NORTH, label2, 40, SpringLayout.SOUTH, label1);
    spring.putConstraint(SpringLayout.WEST, textfield1, 80, SpringLayout.EAST, label1);
    spring.putConstraint(SpringLayout.NORTH, textfield1, 30, SpringLayout.SOUTH, textfield3);
    spring.putConstraint(SpringLayout.NORTH, error3, -27, SpringLayout.SOUTH, textfield1);
    spring.putConstraint(SpringLayout.WEST, error3, 260, SpringLayout.EAST, label2);

    container.add(label3);
    container.add(textfield2);
    container.add(error4);
    container.add(error6);
    spring.putConstraint(SpringLayout.WEST, label3, 20, SpringLayout.WEST, container);
    spring.putConstraint(SpringLayout.NORTH, label3, 45, SpringLayout.SOUTH, label2);
    spring.putConstraint(SpringLayout.WEST, textfield2, 80, SpringLayout.EAST, label1);
    spring.putConstraint(SpringLayout.NORTH, textfield2, 30, SpringLayout.SOUTH, textfield1);
    spring.putConstraint(SpringLayout.NORTH, error4, -26, SpringLayout.SOUTH, textfield2);
    spring.putConstraint(SpringLayout.WEST, error4, 251, SpringLayout.EAST, label3);
    spring.putConstraint(SpringLayout.NORTH, error6, -26, SpringLayout.SOUTH, textfield2);
    spring.putConstraint(SpringLayout.WEST, error6, 251, SpringLayout.EAST, label3);

    container.add(label4);
    container.add(combobox1);
    container.add(error5);
    spring.putConstraint(SpringLayout.WEST, label4, 20, SpringLayout.WEST, container);
    spring.putConstraint(SpringLayout.NORTH, label4, 40, SpringLayout.SOUTH, label3);
    spring.putConstraint(SpringLayout.WEST, combobox1, 80, SpringLayout.EAST, label1);
    spring.putConstraint(SpringLayout.NORTH, combobox1, 30, SpringLayout.SOUTH, textfield2);
    spring.putConstraint(SpringLayout.NORTH, error5, -26, SpringLayout.SOUTH, combobox1);
    spring.putConstraint(SpringLayout.WEST, error5, 320, SpringLayout.EAST, label3);

    container.add(label5);
    container.add(label6);
    spring.putConstraint(SpringLayout.WEST, label5, 20, SpringLayout.WEST, container);
    spring.putConstraint(SpringLayout.NORTH, label5, 20, SpringLayout.SOUTH, label4);
    spring.putConstraint(SpringLayout.WEST, label6, 280, SpringLayout.EAST, label5);
    spring.putConstraint(SpringLayout.NORTH, label6, 20, SpringLayout.SOUTH, label4);

    container.add(leftListScroll);
    container.add(addBut);
    container.add(rmvBut);
    container.add(rightListScroll);
    container.add(error7);
    spring.putConstraint(SpringLayout.WEST, leftListScroll, 20, SpringLayout.WEST, container);
    spring.putConstraint(SpringLayout.NORTH, leftListScroll, 45, SpringLayout.SOUTH, label4);
    spring.putConstraint(SpringLayout.WEST, addBut, 35, SpringLayout.EAST, leftListScroll);
    spring.putConstraint(SpringLayout.NORTH, addBut, 52, SpringLayout.SOUTH, label4);
    spring.putConstraint(SpringLayout.WEST, rmvBut, 25, SpringLayout.EAST, leftListScroll);
    spring.putConstraint(SpringLayout.NORTH, rmvBut, 10, SpringLayout.SOUTH, addBut);
    spring.putConstraint(SpringLayout.WEST, rightListScroll, 24, SpringLayout.EAST, rmvBut);
    spring.putConstraint(SpringLayout.NORTH, rightListScroll, 45, SpringLayout.SOUTH, label4);
    spring.putConstraint(SpringLayout.WEST, error7, 40, SpringLayout.EAST, label4);
    spring.putConstraint(SpringLayout.NORTH, error7, 345, SpringLayout.SOUTH, label4);

    container.add(button1);
    container.add(button2);
    spring.putConstraint(SpringLayout.WEST, button1, 222, SpringLayout.WEST, container);
    spring.putConstraint(SpringLayout.NORTH, button1, 362, SpringLayout.SOUTH, combobox1);
    spring.putConstraint(SpringLayout.WEST, button2, 222, SpringLayout.EAST, label2);
    spring.putConstraint(SpringLayout.NORTH, button2, 362, SpringLayout.SOUTH, combobox1);

    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    setSize(690, 680);
    setLocation(300, 60);
    setVisible(true);
    PackagePanel.defaultButtonSet();
  }