Example #1
0
  private Table createDetailedTable(Composite base) {
    IPreferenceStore store = DdmUiPreferences.getStore();

    Table tab = new Table(base, SWT.SINGLE | SWT.FULL_SELECTION);
    tab.setHeaderVisible(true);
    tab.setLinesVisible(true);

    TableHelper.createTableColumn(
        tab,
        "Type",
        SWT.LEFT,
        "4-byte array (object[], int[], float[])", //$NON-NLS-1$
        PREFS_STATS_COL_TYPE,
        store);

    TableHelper.createTableColumn(
        tab,
        "Count",
        SWT.RIGHT,
        "00,000", //$NON-NLS-1$
        PREFS_STATS_COL_COUNT,
        store);

    TableHelper.createTableColumn(
        tab,
        "Total Size",
        SWT.RIGHT,
        "000.000 WW", //$NON-NLS-1$
        PREFS_STATS_COL_SIZE,
        store);

    TableHelper.createTableColumn(
        tab,
        "Smallest",
        SWT.RIGHT,
        "000.000 WW", //$NON-NLS-1$
        PREFS_STATS_COL_SMALLEST,
        store);

    TableHelper.createTableColumn(
        tab,
        "Largest",
        SWT.RIGHT,
        "000.000 WW", //$NON-NLS-1$
        PREFS_STATS_COL_LARGEST,
        store);

    TableHelper.createTableColumn(
        tab,
        "Median",
        SWT.RIGHT,
        "000.000 WW", //$NON-NLS-1$
        PREFS_STATS_COL_MEDIAN,
        store);

    TableHelper.createTableColumn(
        tab,
        "Average",
        SWT.RIGHT,
        "000.000 WW", //$NON-NLS-1$
        PREFS_STATS_COL_AVERAGE,
        store);

    tab.addSelectionListener(
        new SelectionAdapter() {
          @Override
          public void widgetSelected(SelectionEvent e) {

            Client client = getCurrentClient();
            if (client != null) {
              int index = mStatisticsTable.getSelectionIndex();
              TableItem item = mStatisticsTable.getItem(index);

              if (item != null) {
                Map<Integer, ArrayList<HeapSegmentElement>> heapMap =
                    client.getClientData().getVmHeapData().getProcessedHeapMap();

                ArrayList<HeapSegmentElement> list = heapMap.get(item.getData());
                if (list != null) {
                  showChart(list);
                }
              }
            }
          }
        });

    return tab;
  }