Difference between revisions of "ETrice/Development/Tips and tricks"

From Eclipsepedia

Jump to: navigation, search
(Add Tracing to Your Plug-in)
 
(3 intermediate revisions by one user not shown)
Line 2: Line 2:
  
 
== Add Tracing to Your Plug-in ==
 
== Add Tracing to Your Plug-in ==
 +
 +
Add a file <code>.option</code> on the top level of your plug-in project. To this file add a line
 +
<pre>
 +
de.protos.example/trace/data=true
 +
</pre>
 +
 +
This setting can be toggled in the trace tab of your launch configuration (it's also possible to edit string values there).
 +
 +
Here is the source code that uses these settings to enable trace messages printed to system log or standard out:
  
 
<source lang="Java">
 
<source lang="Java">
Line 15: Line 24:
 
}
 
}
 
</source>
 
</source>
 +
 +
You may have to define an Activator class if it's not present yet. In the MANIFEST.MF make sure that the plug-in is activated when one of its classes is loaded.
 +
The Activator may be derived from AbstractUIPlugin and should in its minimal version look like this:
 +
 +
<source lang="Java">
 +
 +
public class Activator extends AbstractUIPlugin implements BundleActivator {
 +
 +
private static Activator instance = null;
 +
 +
public static Activator getDefault() {
 +
return instance;
 +
}
 +
 +
@Override
 +
public void start(BundleContext context) throws Exception {
 +
super.start(context);
 +
instance = this;
 +
}
 +
 +
@Override
 +
public void stop(BundleContext context) throws Exception {
 +
instance = null;
 +
super.stop(context);
 +
}
 +
}
 +
</source>
 +
 +
[[Category:eTrice]]

Latest revision as of 03:20, 16 April 2013

[edit] General Eclipse HOWTOs

[edit] Add Tracing to Your Plug-in

Add a file .option on the top level of your plug-in project. To this file add a line

de.protos.example/trace/data=true

This setting can be toggled in the trace tab of your launch configuration (it's also possible to edit string values there).

Here is the source code that uses these settings to enable trace messages printed to system log or standard out:

	private static boolean traceData = false;
 
	static {
		if (Activator.getDefault().isDebugging()) {
			String value = Platform.getDebugOption(
					"de.protos.example/trace/data");
			if (value!=null && value.equalsIgnoreCase(Boolean.toString(true)))
				traceData = true;
		}
	}

You may have to define an Activator class if it's not present yet. In the MANIFEST.MF make sure that the plug-in is activated when one of its classes is loaded. The Activator may be derived from AbstractUIPlugin and should in its minimal version look like this:

public class Activator extends AbstractUIPlugin implements BundleActivator {
 
	private static Activator instance = null;
 
	public static Activator getDefault() {
		return instance;
	}
 
	@Override
	public void start(BundleContext context) throws Exception {
		super.start(context);
		instance = this;
	}
 
	@Override
	public void stop(BundleContext context) throws Exception {
		instance = null;
		super.stop(context);
	}
}