예제 #1
0
  /** Creates the control widgets. */
  void createControlWidgets() {
    /* Controls the type of Throughput */
    // GridData gridData=new GridData(GridData.FILL_HORIZONTAL);

    Label filterByLabel = new Label(controlGroup, SWT.None);
    filterByLabel.setText(Analyze.getResourceString("Filter by"));
    filterByLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));

    filterByCombo = new Combo(controlGroup, SWT.READ_ONLY);
    filterByCombo.setItems(new String[] {"Node ID", "Label ID"});
    filterByCombo.select(0);
    /* Add listener */
    filterByCombo.addSelectionListener(
        new SelectionListener() {
          public void widgetSelected(SelectionEvent e) {
            // System.out.println(filterByCombo.getSelectionIndex());
            setItemFromComboToCombo();
          }

          public void widgetDefaultSelected(SelectionEvent e) {
            // System.out.println("nghia");
          }
        });

    Label fromLabel = new Label(controlGroup, SWT.None);
    fromLabel.setText(Analyze.getResourceString("From"));
    fromLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));

    fromCombo = new Combo(controlGroup, SWT.READ_ONLY);

    Label toLabel = new Label(controlGroup, SWT.None);
    toLabel.setText(Analyze.getResourceString("To"));
    toLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));

    toCombo = new Combo(controlGroup, SWT.READ_ONLY);
    setItemFromComboToCombo();

    analyze = new Button(controlGroup, SWT.PUSH);
    analyze.setText(Analyze.getResourceString("Analyze"));
    analyze.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));

    Button analyzeGroup = new Button(controlGroup, SWT.PUSH);
    analyzeGroup.setText(Analyze.getResourceString("Analyze Group"));
    analyzeGroup.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));

    /* Add listener to button analyze group */
    analyzeGroup.addSelectionListener(
        new SelectionAdapter() {
          public void widgetSelected(SelectionEvent e) {
            if (listNodeAreaDest.size() > 0 && listNodeAreaSource.size() > 0) {
              setUpInfoGroupHopCount();
            }
          }
        });

    /* Add listener to add an element to the table */
    analyze.addSelectionListener(
        new SelectionAdapter() {
          public void widgetSelected(SelectionEvent e) {
            if (fromCombo.getSelectionIndex() == -1 || toCombo.getSelectionIndex() == -1) {
              MessageBox dialog = new MessageBox(new Shell(), SWT.ICON_QUESTION | SWT.OK);
              dialog.setText("Error");
              dialog.setMessage("Let choose source node and destination node!");
              dialog.open();
            } else {
              table.removeAll();
              int No = 1;
              int maxHopCount = 0;
              int minHopCount = 1000000000;
              double totalHopCount = 0;
              double totalTime = 0;
              LinkedHashMap<Packet, Integer> listHopCountPacket =
                  new LinkedHashMap<Packet, Integer>();
              ArrayList<Packet> listPacket = new ArrayList<Packet>();
              for (int i = 0; i < Analyze.mParser.getListPacket().size(); i++) {
                Packet packet = Analyze.mParser.getListPacket().get(i);

                if (!fromCombo.getItem(fromCombo.getSelectionIndex()).equals("All nodes")
                    && !toCombo.getItem(toCombo.getSelectionIndex()).equals("All nodes")) {
                  if (fromCombo.getItem(fromCombo.getSelectionIndex()).equals((packet.sourceID))
                      && toCombo.getItem(toCombo.getSelectionIndex()).equals((packet.destID))
                      && packet.isSuccess) {
                    listPacket.add(packet);
                  }
                }
                if (!fromCombo.getItem(fromCombo.getSelectionIndex()).equals("All nodes")
                    && toCombo.getItem(toCombo.getSelectionIndex()).equals("All nodes")) {
                  if (fromCombo.getItem(fromCombo.getSelectionIndex()).equals((packet.sourceID))
                      && packet.isSuccess) {
                    listPacket.add(packet);
                  }
                }
                if (fromCombo.getItem(fromCombo.getSelectionIndex()).equals("All nodes")
                    && !toCombo.getItem(toCombo.getSelectionIndex()).equals("All nodes")) {
                  if (toCombo.getItem(toCombo.getSelectionIndex()).equals((packet.destID))
                      && packet.isSuccess) {
                    listPacket.add(packet);
                  }
                }
                if (fromCombo.getItem(fromCombo.getSelectionIndex()).equals("All nodes")
                    && toCombo.getItem(toCombo.getSelectionIndex()).equals("All nodes")) {
                  if (packet.isSuccess) {
                    listPacket.add(packet);
                  }
                }
              }
              for (int i = 0; i < listPacket.size(); i++) {
                Packet packet = listPacket.get(i);
                TableItem tableItem = new TableItem(table, SWT.NONE);
                tableItem.setText(0, Integer.toString(No++));
                tableItem.setText(1, packet.id);
                tableItem.setText(2, Integer.toString(packet.listNode.size() - 1));
                tableItem.setText(3, packet.sourceID + "---" + packet.destID);
                totalHopCount += packet.listNode.size() - 1;
                totalTime +=
                    (Double.parseDouble(packet.endTime) - Double.parseDouble(packet.startTime));
                listHopCountPacket.put(packet, packet.listNode.size() - 1);

                if (maxHopCount < packet.listNode.size() - 1)
                  maxHopCount = packet.listNode.size() - 1;
                if (minHopCount > packet.listNode.size() - 1)
                  minHopCount = packet.listNode.size() - 1;
              }
              if (No == 1) {
                MessageBox dialog = new MessageBox(new Shell(), SWT.ICON_QUESTION | SWT.OK);
                dialog.setText("Error");
                dialog.setMessage(
                    "No packet from node "
                        + fromCombo.getItem(fromCombo.getSelectionIndex())
                        + " to node "
                        + toCombo.getItem(toCombo.getSelectionIndex())
                        + "!");
                dialog.open();
                avgText.setText("0");
                variantText.setText("0");
                maxText.setText("0");
                minText.setText("0");
                xSeries = new double[0];
                ySeries = new double[0];
              } else {
                DecimalFormat df = new DecimalFormat("0.00");
                // System.out.println(No-1);
                String str = df.format(totalHopCount / (No - 1));
                // set mean
                avgText.setText(str);
                // set text variant
                variantText.setText(df.format(variancesHopCount(listHopCountPacket, totalTime)));
                maxText.setText(Integer.toString(maxHopCount));
                minText.setText(Integer.toString(minHopCount));
                // init line chart
                initXYseries(listHopCountPacket);
              }
              if (filterByCombo.getSelectionIndex() == 0) resetEditors();
            }
          }
        });

    /* Add common controls */
    super.createControlWidgets();
  }