[yocto] [PATCH 8/8] Refactor Latencytop and Perf Handler to remove duplicate code
Ioana Grigoropol
ioanax.grigoropol at intel.com
Tue Apr 30 07:36:31 PDT 2013
- both latencytop and perf handler run the same initialization code
-> moved the common code to TerminalHandler
-> added constants to hold dialog's titles and messages that are different for each handler
Signed-off-by: Ioana Grigoropol <ioanax.grigoropol at intel.com>
---
.../sdk/remotetools/actions/IBaseConstants.java | 3 +++
.../sdk/remotetools/actions/LatencytopHandler.java | 22 +++++++-------------
.../yocto/sdk/remotetools/actions/PerfHandler.java | 22 +++++++-------------
.../sdk/remotetools/actions/TerminalHandler.java | 16 ++++++++++----
4 files changed, 31 insertions(+), 32 deletions(-)
diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/IBaseConstants.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/IBaseConstants.java
index ccab19c..d4bbe12 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/IBaseConstants.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/IBaseConstants.java
@@ -21,4 +21,7 @@ public interface IBaseConstants {
public static final String CONNECTION_NAME_LATENCYTOP = QUALIFIER + "connection.latencytop"; //$NON-NLS-1$
public static final String CONNECTION_NAME_PERF = QUALIFIER + "connection.perf"; //$NON-NLS-1$
public static final String CONNECTION_NAME_SYSTEMTAP = QUALIFIER + "connection.systemtap"; //$NON-NLS-1$
+
+ public static final String DIALOG_TITLE_LATENCYTOP = "Latencytop"; //$NON-NLS-1$
+ public static final String DIALOG_TITLE_PERF = "Perf"; //$NON-NLS-1$
}
diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/LatencytopHandler.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/LatencytopHandler.java
index 55773d6..ef77957 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/LatencytopHandler.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/LatencytopHandler.java
@@ -10,27 +10,21 @@
*******************************************************************************/
package org.yocto.sdk.remotetools.actions;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.handlers.HandlerUtil;
public class LatencytopHandler extends TerminalHandler {
private static String initCmd="export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin; cd; sudo latencytop\r";
+ @Override
protected String getInitCmd() {
return initCmd;
}
-
- protected void initialize(ExecutionEvent event) throws ExecutionException {
- IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
- shell = window.getShell();
-
- setting=new SimpleSettingDialog(
- shell,
- "Latencytop",
- IBaseConstants.CONNECTION_NAME_LATENCYTOP
- );
+ @Override
+ protected String getConnnectionName() {
+ return IBaseConstants.CONNECTION_NAME_LATENCYTOP;
+ }
+ @Override
+ protected String getDialogTitle() {
+ return IBaseConstants.DIALOG_TITLE_LATENCYTOP;
}
}
diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PerfHandler.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PerfHandler.java
index 22046e9..949bd46 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PerfHandler.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PerfHandler.java
@@ -10,27 +10,21 @@
*******************************************************************************/
package org.yocto.sdk.remotetools.actions;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.handlers.HandlerUtil;
public class PerfHandler extends TerminalHandler {
private static String initCmd="cd; perf\r";
+ @Override
protected String getInitCmd() {
return initCmd;
}
-
- protected void initialize(ExecutionEvent event) throws ExecutionException {
- IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
- shell = window.getShell();
- setting=new SimpleSettingDialog(
- shell,
- "Perf",
- IBaseConstants.CONNECTION_NAME_LATENCYTOP
- );
+ @Override
+ protected String getConnnectionName() {
+ return IBaseConstants.CONNECTION_NAME_PERF;
+ }
+ @Override
+ protected String getDialogTitle() {
+ return IBaseConstants.DIALOG_TITLE_PERF;
}
-
}
diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/TerminalHandler.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/TerminalHandler.java
index a3fa409..84e38f2 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/TerminalHandler.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/TerminalHandler.java
@@ -13,12 +13,11 @@ package org.yocto.sdk.remotetools.actions;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Shell;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.internal.terminals.ui.TerminalServiceHelper;
import org.eclipse.rse.internal.terminals.ui.views.RSETerminalConnector;
@@ -32,10 +31,13 @@ import org.eclipse.rse.ui.SystemBasePlugin;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.tm.internal.terminal.control.ITerminalViewControl;
import org.eclipse.tm.internal.terminal.provisional.api.ITerminalConnector;
-import org.yocto.sdk.remotetools.RSEHelper;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
import org.yocto.sdk.remotetools.CommonHelper;
+import org.yocto.sdk.remotetools.RSEHelper;
abstract public class TerminalHandler extends AbstractHandler {
@@ -46,7 +48,13 @@ abstract public class TerminalHandler extends AbstractHandler {
protected String changeTerm="export TERM=vt100;";
abstract protected String getInitCmd();
- abstract protected void initialize(ExecutionEvent event) throws ExecutionException;
+ abstract protected String getConnnectionName();
+ abstract protected String getDialogTitle();
+ protected void initialize(ExecutionEvent event) throws ExecutionException{
+ IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
+ shell = window.getShell();
+ setting = new SimpleSettingDialog(shell, getDialogTitle(), getConnnectionName());
+ }
protected ITerminalShell getTerminalShellFromTab(CTabItem item) {
ITerminalShell terminalShell = null;
--
1.7.9.5
More information about the yocto
mailing list