Hi Ioana, Why we're changing "public BaseModel(...)" to "BaseModel(...)"?
Thanks, Jessica -----Original Message----- From: yocto-boun...@yoctoproject.org [mailto:yocto-boun...@yoctoproject.org] On Behalf Of Ioana Grigoropol Sent: Tuesday, April 30, 2013 7:36 AM To: yocto@yoctoproject.org Subject: [yocto] [PATCH 2/8] Refactor Model(s) to display customized messages - each of the remote tools models (systemtap, oprofile, powertop, ust2, ustlegacy) inherits BaseModel class - when running any of these models there are a series of actions performed such as: - init - pre-process - process - post-process - clean - while the action is running a progress monitor is display showing no message and no progress update - in order to set an appropriate message for the monitor, define a taskName at the parent level that will be customized by each of the models - each time the action performed changes the monitor's subtask message should be updated accordingly Signed-off-by: Ioana Grigoropol <ioanax.grigoro...@intel.com> --- .../yocto/sdk/remotetools/actions/BaseModel.java | 70 ++++++++++++-------- .../sdk/remotetools/actions/OprofileModel.java | 15 +++-- .../sdk/remotetools/actions/PowertopModel.java | 13 ++-- .../sdk/remotetools/actions/SystemtapModel.java | 7 +- .../yocto/sdk/remotetools/actions/Ust2Model.java | 10 +-- 5 files changed, 70 insertions(+), 45 deletions(-) diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java index 4f6a5c8..e1abd63 100644 --- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java +++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/ac +++ tions/BaseModel.java @@ -18,49 +18,63 @@ import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.rse.core.model.IHost; abstract public class BaseModel implements IRunnableWithProgress { - - protected IHost rseConnection; + protected IHost host; + protected String taskName; + + private static final int WORKLOAD = 100; + + private static final int INIT_PERCENT = 5; + private static final int PRE_PROCESS_PERCENT = 30; + private static final int PROCESS_PERCENT = 30; + private static final int POST_PROCESS_PERCENT = 30; + private static final int CLEAN_PERCENT = 5; + + private static final String RUN_MSG = "Running task: "; + private static final String INIT_MSG = "Initializing "; + private static final String PRE_PROCESS_MSG = "Preparing "; + private static final String PROCESS_MSG = "Processing "; + private static final String POST_PROCESS_MSG = "Finishing "; + private static final String CLEAN_MSG = "Cleaning "; + private static final String DOTS = "..."; abstract public void preProcess(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException; abstract public void postProcess(IProgressMonitor monitor) throws InvocationTargetException,InterruptedException; abstract public void process(IProgressMonitor monitor) throws InvocationTargetException,InterruptedException; - public BaseModel(IHost rseConnection) { - this.rseConnection=rseConnection; + BaseModel(IHost host, String taskName) { + this.host = host; + this.taskName = taskName; } - protected void init(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { - /* - if(rseConnection==null) { - throw new InvocationTargetException(new Exception("NULL rse connection"),"NULL rse connection"); - }*/ } - protected void uninit(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { - + protected void clean(IProgressMonitor monitor) throws +InvocationTargetException, InterruptedException { } - + public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { try { - monitor.beginTask("", 100); - init(new SubProgressMonitor(monitor,5)); - if(monitor.isCanceled()) - throw new InterruptedException("User canncelled"); - preProcess(new SubProgressMonitor(monitor,30)); - if(monitor.isCanceled()) - throw new InterruptedException("User canncelled"); - process(new SubProgressMonitor(monitor,30)); - if(monitor.isCanceled()) - throw new InterruptedException("User canncelled"); - postProcess(new SubProgressMonitor(monitor,30)); - }catch (InterruptedException e){ - throw e; - }catch (InvocationTargetException e) { + monitor.beginTask(RUN_MSG + taskName, WORKLOAD); + + monitor.subTask(INIT_MSG + taskName + DOTS); + init(new SubProgressMonitor(monitor, INIT_PERCENT)); + + monitor.subTask(PRE_PROCESS_MSG + taskName + DOTS); + preProcess(new SubProgressMonitor(monitor, PRE_PROCESS_PERCENT)); + + monitor.subTask(PROCESS_MSG + taskName + DOTS); + process(new SubProgressMonitor(monitor, PROCESS_PERCENT)); + + monitor.subTask(POST_PROCESS_MSG + taskName + DOTS); + postProcess(new SubProgressMonitor(monitor, POST_PROCESS_PERCENT)); + } catch (InterruptedException e){ + throw new InterruptedException("User cancelled!"); + } catch (InvocationTargetException e) { throw e; - }finally { - uninit(new SubProgressMonitor(monitor,5)); + } finally { + monitor.subTask(CLEAN_MSG + taskName + DOTS); + clean(new SubProgressMonitor(monitor, CLEAN_PERCENT)); monitor.done(); } } diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/OprofileModel.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/OprofileModel.java index 17b54b3..71ff4d9 100644 --- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/OprofileModel.java +++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/ac +++ tions/OprofileModel.java @@ -36,18 +36,21 @@ public class OprofileModel extends BaseModel { static final private String LOCAL_SCRIPT="resources/yocto_tool.sh"; static final private String LOCAL_EXEC="oprofile-viewer"; + private static final String TASK_NAME = "oprofile command"; + private IWorkbenchWindow window; public OprofileModel(IHost host, IWorkbenchWindow window) { - super(host); + super(host, TASK_NAME); this.window=window; } + @Override public void preProcess(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { //upload script to remote try { RSEHelper.putRemoteFileInPlugin( - rseConnection, + host, LOCAL_SCRIPT, REMOTE_EXEC, monitor); @@ -68,7 +71,7 @@ public class OprofileModel extends BaseModel { private void startServer(IProgressMonitor monitor) throws Exception { int exit_code; - RemoteApplication app=new RemoteApplication(rseConnection,null,REMOTE_EXEC,null); + RemoteApplication app=new +RemoteApplication(host,null,REMOTE_EXEC,null); String args="start -d oprofile-server"; try { @@ -89,7 +92,7 @@ public class OprofileModel extends BaseModel { private void stopServer(IProgressMonitor monitor) throws Exception { - RemoteApplication app=new RemoteApplication(rseConnection,null,REMOTE_EXEC,null); + RemoteApplication app=new +RemoteApplication(host,null,REMOTE_EXEC,null); String args="stop -d oprofile-server"; try { monitor.beginTask("Stopping oprofile-server", 2); @@ -177,8 +180,8 @@ public class OprofileModel extends BaseModel { new LocalJob("oprofile-viewer", (searchPath!=null) ? - new String[] {LOCAL_EXEC,"-h",rseConnection.getHostName(),"-s",searchPath} : - new String[] {LOCAL_EXEC,"-h",rseConnection.getHostName()}, + new String[] {LOCAL_EXEC,"-h",host.getHostName(),"-s",searchPath} : + new String[] {LOCAL_EXEC,"-h",host.getHostName()}, null, null, window).schedule(); diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PowertopModel.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PowertopModel.java index cdf4afd..c5f11d3 100644 --- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PowertopModel.java +++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/ac +++ tions/PowertopModel.java @@ -33,15 +33,18 @@ public class PowertopModel extends BaseModel { final private String LOCAL_SCRIPT="resources/yocto_tool.sh"; final private String REMOTE_FILE_PREFIX="/tmp/yocto-powertop-"; final private String LOCAL_FILE_SUFFIX=".local"; + + private static final String TASK_NAME = "powertop command"; + private Float time; private boolean showpid; Display display; - + String localfile; String remotefile; public PowertopModel(IHost host, Float time,boolean showpid,Display display) { - super(host); + super(host, TASK_NAME); this.time=time; this.showpid=showpid; this.display=display; @@ -53,7 +56,7 @@ public class PowertopModel extends BaseModel { //upload script to remote try { RSEHelper.putRemoteFileInPlugin( - rseConnection, + host, LOCAL_SCRIPT, REMOTE_EXEC, monitor); @@ -79,7 +82,7 @@ public class PowertopModel extends BaseModel { private void generateData(IProgressMonitor monitor) throws Exception { int exit_code; - RemoteApplication app=new RemoteApplication(rseConnection,null,REMOTE_EXEC,null); + RemoteApplication app=new +RemoteApplication(host,null,REMOTE_EXEC,null); String currentDate=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(Calendar.getInstance().getTime()).toString(); remotefile=new String(REMOTE_FILE_PREFIX + currentDate); localfile=new String(remotefile + LOCAL_FILE_SUFFIX); @@ -117,7 +120,7 @@ public class PowertopModel extends BaseModel { private void getDataFile(IProgressMonitor monitor) throws Exception { RSEHelper.getRemoteFile( - rseConnection, + host, localfile, remotefile, monitor); diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/SystemtapModel.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/SystemtapModel.java index 0d22d97..41c79df 100644 --- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/SystemtapModel.java +++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/ac +++ tions/SystemtapModel.java @@ -24,17 +24,20 @@ import org.yocto.sdk.remotetools.ShellSession; public class SystemtapModel extends BaseModel { protected static final String DEFAULT_INIT_SCRIPT = "oe-init-build-env"; protected static final String SYSTEMTAP_CONSOLE = "Systemtap Console"; + + private static final String TASK_NAME = "systemtap command"; + protected MessageConsole sessionConsole; private String metadata_location; private String remote_host; private String user_id; private String systemtap_script; private String systemtap_args; - + Display display; public SystemtapModel(String metadata_location, String remote_host, String user_id, String systemtap_script, String systemtap_args, Display display) { - super(null); + super(null, TASK_NAME); this.metadata_location=metadata_location; this.remote_host=remote_host; this.user_id=user_id; diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Ust2Model.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Ust2Model.java index dbde287..171f17b 100644 --- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Ust2Model.java +++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/ac +++ tions/Ust2Model.java @@ -40,6 +40,8 @@ public class Ust2Model extends BaseModel { static final private String LOCAL_EXEC="lttv-gui"; public static final String TRACE_FOLDER_NAME = "Traces"; static final private String DATAFILE_PREFIX = "ustfile:"; + + private static final String TASK_NAME = "ust2trace command"; private String trace_loc; @@ -50,7 +52,7 @@ public class Ust2Model extends BaseModel { private IWorkbenchWindow window; public Ust2Model(IHost host, String trace, String project, IWorkbenchWindow window) { - super(host); + super(host, TASK_NAME); trace_loc=trace; prj_name = project; @@ -63,7 +65,7 @@ public class Ust2Model extends BaseModel { ///upload script to remote try { RSEHelper.putRemoteFileInPlugin( - rseConnection, + host, LOCAL_SCRIPT, REMOTE_EXEC, monitor); @@ -91,7 +93,7 @@ public class Ust2Model extends BaseModel { private String generateData(IProgressMonitor monitor) throws Exception { int exit_code; - RemoteApplication app=new RemoteApplication(rseConnection,null,REMOTE_EXEC,null); + RemoteApplication app=new +RemoteApplication(host,null,REMOTE_EXEC,null); String remoteDataFile=null; @@ -131,7 +133,7 @@ public class Ust2Model extends BaseModel { localfile=new String(datafile.substring(0,datafile.length()-4) + LOCAL_FILE_SUFFIX); RSEHelper.getRemoteFile( - rseConnection, + host, localfile, datafile, monitor); -- 1.7.9.5 _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto