Mercurial > hg > release > thermostat-0.4
changeset 561:995b2dd560b0
Refactor thread view
review-thread: http://icedtea.classpath.org/pipermail/thermostat/2012-August/002861.html
reviewed-by: omajid
author | Mario Torre <neugens.limasoftware@gmail.com> |
---|---|
date | Wed, 22 Aug 2012 19:22:52 +0200 |
parents | e7e68d924181 |
children | faa61b45ba32 |
files | thread/client-common/src/main/java/com/redhat/thermostat/thread/client/common/locale/LocaleResources.java thread/client-common/src/main/resources/com/redhat/thermostat/thread/client/common/locale/strings.properties thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/SwingThreadView.java thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/ThreadAliveDaemonTimelinePanel.java thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/ThreadMainPanel.java |
diffstat | 5 files changed, 74 insertions(+), 87 deletions(-) [+] |
line wrap: on
line diff
--- a/thread/client-common/src/main/java/com/redhat/thermostat/thread/client/common/locale/LocaleResources.java Wed Aug 22 19:22:24 2012 +0200 +++ b/thread/client-common/src/main/java/com/redhat/thermostat/thread/client/common/locale/LocaleResources.java Wed Aug 22 19:22:52 2012 +0200 @@ -50,7 +50,7 @@ WAITING, START_RECORDING, - RECORDING, + STOP_RECORDING, VM_CAPABILITIES, TABLE,
--- a/thread/client-common/src/main/resources/com/redhat/thermostat/thread/client/common/locale/strings.properties Wed Aug 22 19:22:24 2012 +0200 +++ b/thread/client-common/src/main/resources/com/redhat/thermostat/thread/client/common/locale/strings.properties Wed Aug 22 19:22:52 2012 +0200 @@ -10,7 +10,7 @@ WAITING = Waiting % START_RECORDING = Start Recording -RECORDING = Recording probes... +STOP_RECORDING = Stop Recording VM_CAPABILITIES = VM Capabilities TABLE = Table
--- a/thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/SwingThreadView.java Wed Aug 22 19:22:24 2012 +0200 +++ b/thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/SwingThreadView.java Wed Aug 22 19:22:52 2012 +0200 @@ -49,11 +49,9 @@ import com.redhat.thermostat.client.ui.SwingComponent; import com.redhat.thermostat.common.locale.Translate; import com.redhat.thermostat.swing.ChartPanel; - import com.redhat.thermostat.thread.client.common.ThreadTableView; import com.redhat.thermostat.thread.client.common.ThreadView; import com.redhat.thermostat.thread.client.common.VMThreadCapabilitiesView; - import com.redhat.thermostat.thread.client.common.chart.LivingDaemonThreadDifferenceChart; import com.redhat.thermostat.thread.client.common.locale.LocaleResources; @@ -78,7 +76,7 @@ // TODO: allow controller to define this value based on last // user setting - panel.getSplitPane().setDividerLocation(0.30); + panel.getSplitPane().setDividerLocation(0.80); } @Override @@ -87,17 +85,20 @@ } }); - panel.getLiveRecording().setText(t.localize(LocaleResources.START_RECORDING)); - panel.getLiveRecording().addItemListener(new ItemListener() { + timelinePanel = new ThreadAliveDaemonTimelinePanel(); + + timelinePanel.setToggleText(t.localize(LocaleResources.START_RECORDING) + ":"); + timelinePanel.getRecordButton().addItemListener(new ItemListener() + { @Override public void itemStateChanged(ItemEvent e) { ThreadAction action = null; if (e.getStateChange() == ItemEvent.SELECTED) { action = ThreadAction.START_LIVE_RECORDING; - panel.getLiveRecording().setText(t.localize(LocaleResources.RECORDING)); + timelinePanel.setToggleText(t.localize(LocaleResources.STOP_RECORDING) + ":"); } else { action = ThreadAction.STOP_LIVE_RECORDING; - panel.getLiveRecording().setText(t.localize(LocaleResources.START_RECORDING)); + timelinePanel.setToggleText(t.localize(LocaleResources.START_RECORDING) + ":"); } final ThreadAction toNotify = action; SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() { @@ -111,7 +112,6 @@ } }); - timelinePanel = new ThreadAliveDaemonTimelinePanel(); panel.getSplitPane().setTopComponent(timelinePanel); vmCapsView = new SwingVMThreadCapabilitiesView(); @@ -134,7 +134,7 @@ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - panel.getLiveRecording().setSelected(recording); + timelinePanel.getRecordButton().setSelected(recording); } }); }
--- a/thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/ThreadAliveDaemonTimelinePanel.java Wed Aug 22 19:22:24 2012 +0200 +++ b/thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/ThreadAliveDaemonTimelinePanel.java Wed Aug 22 19:22:52 2012 +0200 @@ -37,15 +37,17 @@ package com.redhat.thermostat.thread.client.swing.impl; import javax.swing.BoxLayout; -import javax.swing.JPanel; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JToggleButton; import javax.swing.LayoutStyle.ComponentPlacement; -import javax.swing.JLabel; import javax.swing.SwingConstants; import com.redhat.thermostat.common.locale.Translate; import com.redhat.thermostat.thread.client.common.locale.LocaleResources; +import com.redhat.thermostat.swing.ToggleButton; @SuppressWarnings("serial") class ThreadAliveDaemonTimelinePanel extends JPanel { @@ -56,6 +58,10 @@ private JLabel daemonThreads; private JPanel timelinePanel; + private ToggleButton toggleButton; + + private JLabel lblNewLabel; + /** * Create the panel. */ @@ -70,22 +76,16 @@ GroupLayout groupLayout = new GroupLayout(this); groupLayout.setHorizontalGroup( + groupLayout.createParallelGroup(Alignment.TRAILING) + .addComponent(runningPanel, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 577, Short.MAX_VALUE) + .addComponent(timelinePanel, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 577, Short.MAX_VALUE) + ); + groupLayout.setVerticalGroup( groupLayout.createParallelGroup(Alignment.LEADING) .addGroup(groupLayout.createSequentialGroup() - .addContainerGap() - .addGroup(groupLayout.createParallelGroup(Alignment.LEADING) - .addComponent(runningPanel, GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE) - .addComponent(timelinePanel, GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE)) - .addContainerGap()) - ); - groupLayout.setVerticalGroup( - groupLayout.createParallelGroup(Alignment.TRAILING) - .addGroup(Alignment.LEADING, groupLayout.createSequentialGroup() - .addContainerGap() - .addComponent(runningPanel, GroupLayout.PREFERRED_SIZE, 55, GroupLayout.PREFERRED_SIZE) + .addComponent(runningPanel, GroupLayout.PREFERRED_SIZE, 41, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(timelinePanel, GroupLayout.DEFAULT_SIZE, 233, Short.MAX_VALUE) - .addGap(3)) + .addComponent(timelinePanel, GroupLayout.DEFAULT_SIZE, 254, Short.MAX_VALUE)) ); JLabel liveThreadsLabel = new JLabel(t.localize(LocaleResources.LIVE_THREADS) + ":"); @@ -97,31 +97,57 @@ daemonThreads = new JLabel("-"); daemonThreads.setHorizontalAlignment(SwingConstants.RIGHT); + + JPanel panel = new JPanel(); GroupLayout gl_runningPanel = new GroupLayout(runningPanel); gl_runningPanel.setHorizontalGroup( gl_runningPanel.createParallelGroup(Alignment.LEADING) .addGroup(gl_runningPanel.createSequentialGroup() - .addGroup(gl_runningPanel.createParallelGroup(Alignment.TRAILING, false) - .addComponent(liveThreadsLabel, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(daemonThreadsLabel, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(ComponentPlacement.RELATED) + .addGroup(gl_runningPanel.createParallelGroup(Alignment.LEADING) + .addComponent(daemonThreadsLabel) + .addComponent(liveThreadsLabel)) + .addGap(24) .addGroup(gl_runningPanel.createParallelGroup(Alignment.LEADING, false) .addComponent(daemonThreads, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(liveThreads, GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE)) - .addContainerGap(221, Short.MAX_VALUE)) + .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(panel, GroupLayout.DEFAULT_SIZE, 331, Short.MAX_VALUE)) ); gl_runningPanel.setVerticalGroup( - gl_runningPanel.createParallelGroup(Alignment.LEADING) + gl_runningPanel.createParallelGroup(Alignment.TRAILING) .addGroup(gl_runningPanel.createSequentialGroup() .addGroup(gl_runningPanel.createParallelGroup(Alignment.BASELINE) .addComponent(liveThreadsLabel) .addComponent(liveThreads)) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_runningPanel.createParallelGroup(Alignment.BASELINE) - .addComponent(daemonThreadsLabel) - .addComponent(daemonThreads)) - .addContainerGap(15, Short.MAX_VALUE)) + .addComponent(daemonThreads) + .addComponent(daemonThreadsLabel)) + .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(panel, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 48, Short.MAX_VALUE) ); + + toggleButton = new ToggleButton(); + + lblNewLabel = new JLabel("New label"); + GroupLayout gl_panel = new GroupLayout(panel); + gl_panel.setHorizontalGroup( + gl_panel.createParallelGroup(Alignment.TRAILING) + .addGroup(gl_panel.createSequentialGroup() + .addContainerGap(209, Short.MAX_VALUE) + .addComponent(lblNewLabel) + .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(toggleButton, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + ); + gl_panel.setVerticalGroup( + gl_panel.createParallelGroup(Alignment.LEADING) + .addGroup(gl_panel.createSequentialGroup() + .addGroup(gl_panel.createParallelGroup(Alignment.TRAILING, false) + .addComponent(lblNewLabel, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(toggleButton, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(24, Short.MAX_VALUE)) + ); + panel.setLayout(gl_panel); runningPanel.setLayout(gl_runningPanel); setLayout(groupLayout); @@ -138,4 +164,12 @@ public JPanel getTimelinePanel() { return timelinePanel; } + + public ToggleButton getRecordButton() { + return toggleButton; + } + + public void setToggleText(String text) { + lblNewLabel.setText(text); + } }
--- a/thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/ThreadMainPanel.java Wed Aug 22 19:22:24 2012 +0200 +++ b/thread/client-swing/src/main/java/com/redhat/thermostat/thread/client/swing/impl/ThreadMainPanel.java Wed Aug 22 19:22:52 2012 +0200 @@ -39,13 +39,8 @@ import javax.swing.BoxLayout; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; -import javax.swing.JButton; -import javax.swing.JList; import javax.swing.JPanel; -import javax.swing.JScrollPane; import javax.swing.JSplitPane; -import javax.swing.JToggleButton; -import javax.swing.LayoutStyle.ComponentPlacement; import com.redhat.thermostat.common.locale.Translate; import com.redhat.thermostat.swing.HeaderPanel; @@ -55,9 +50,6 @@ class ThreadMainPanel extends JPanel { private static final Translate t = LocaleResources.createLocalizer(); - - private JToggleButton liveRecording; - private JButton snapshot; private JSplitPane splitPane; public ThreadMainPanel() { @@ -69,8 +61,6 @@ JPanel content = new JPanel(); headerPanel.setContent(content); - JPanel controlPanel = new JPanel(); - splitPane = new JSplitPane(); splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT); splitPane.setOneTouchExpandable(true); @@ -78,61 +68,24 @@ GroupLayout gl_content = new GroupLayout(content); gl_content.setHorizontalGroup( gl_content.createParallelGroup(Alignment.TRAILING) - .addGroup(gl_content.createSequentialGroup() + .addGroup(Alignment.LEADING, gl_content.createSequentialGroup() .addContainerGap() - .addComponent(splitPane, GroupLayout.DEFAULT_SIZE, 363, Short.MAX_VALUE) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(controlPanel, GroupLayout.PREFERRED_SIZE, 260, GroupLayout.PREFERRED_SIZE) + .addComponent(splitPane, GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE) .addContainerGap()) ); gl_content.setVerticalGroup( - gl_content.createParallelGroup(Alignment.LEADING) - .addGroup(Alignment.TRAILING, gl_content.createSequentialGroup() + gl_content.createParallelGroup(Alignment.TRAILING) + .addGroup(Alignment.LEADING, gl_content.createSequentialGroup() .addContainerGap() - .addGroup(gl_content.createParallelGroup(Alignment.TRAILING) - .addComponent(splitPane, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 313, Short.MAX_VALUE) - .addComponent(controlPanel, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 323, Short.MAX_VALUE)) + .addComponent(splitPane, GroupLayout.DEFAULT_SIZE, 240, Short.MAX_VALUE) .addContainerGap()) ); - snapshot = new JButton(t.localize(LocaleResources.THREAD_DUMP)); - - liveRecording = new JToggleButton(); - - JScrollPane scrollPane = new JScrollPane(); - GroupLayout gl_controlPanel = new GroupLayout(controlPanel); - gl_controlPanel.setHorizontalGroup( - gl_controlPanel.createParallelGroup(Alignment.LEADING) - .addComponent(liveRecording, GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE) - .addComponent(snapshot, GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE) - .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 191, Short.MAX_VALUE) - ); - gl_controlPanel.setVerticalGroup( - gl_controlPanel.createParallelGroup(Alignment.LEADING) - .addGroup(gl_controlPanel.createSequentialGroup() - .addComponent(liveRecording) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(snapshot) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 251, Short.MAX_VALUE)) - ); - - JList<String> list = new JList<>(); - scrollPane.setViewportView(list); - controlPanel.setLayout(gl_controlPanel); - content.setLayout(gl_content); add(headerPanel); } - JToggleButton getLiveRecording() { - return liveRecording; - } - - JButton getSnapshot() { - return snapshot; - } public JSplitPane getSplitPane() { return splitPane; }