[508255] added transparency prefernces for monitoring items

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=508255
Signed-off-by: Alois Zoitl <alois.zoitl@gmx.at>
diff --git a/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/editparts/MonitoringEditPart.java b/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/editparts/MonitoringEditPart.java
index 238e7a0..d6c7abb 100644
--- a/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/editparts/MonitoringEditPart.java
+++ b/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/editparts/MonitoringEditPart.java
@@ -25,6 +25,7 @@
 import org.eclipse.fordiac.ide.model.monitoring.MonitoringElement;
 import org.eclipse.fordiac.ide.monitoring.Activator;
 import org.eclipse.fordiac.ide.monitoring.MonitoringManager;
+import org.eclipse.fordiac.ide.monitoring.preferences.PreferenceConstants;
 import org.eclipse.fordiac.ide.util.imageprovider.FordiacImage;
 import org.eclipse.fordiac.ide.util.preferences.PreferenceGetter;
 import org.eclipse.gef.EditPolicy;
@@ -33,10 +34,39 @@
 import org.eclipse.gef.commands.Command;
 import org.eclipse.gef.editpolicies.DirectEditPolicy;
 import org.eclipse.gef.requests.DirectEditRequest;
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.swt.widgets.Display;
 
 
 public class MonitoringEditPart extends AbstractMonitoringBaseEditPart  {
+	
+	/** The property change listener. */
+	private final IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener() {
+		@Override
+		public void propertyChange(PropertyChangeEvent event) {
+			if (event.getProperty().equals(PreferenceConstants.P_MONITORING_TRANSPARENCY)) {
+				((SetableAlphaLabel)getFigure()).setAlpha(PreferenceConstants.getMonitoringTransparency());
+			}
+		}
+	};
+	
+	@Override
+	public void activate() {
+		if (!isActive()) {
+			super.activate();
+			Activator.getDefault().getPreferenceStore().addPropertyChangeListener(propertyChangeListener);
+		}
+	}
+		
+
+	@Override
+	public void deactivate() {
+		if (isActive()) {
+			super.deactivate();
+			Activator.getDefault().getPreferenceStore().removePropertyChangeListener(propertyChangeListener);
+		}
+	}
 
 
 	public boolean isEvent() {
@@ -56,9 +86,7 @@
 	protected void createEditPolicies() {
 		if(!isEvent()) {
 			//only allow direct edit if it is not an event, see Bug 510735 for details.
-			installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
-					new DirectEditPolicy(){
-	
+			installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new DirectEditPolicy(){	
 						@Override
 						protected Command getDirectEditCommand(DirectEditRequest request) {
 							String value = (String) request.getCellEditor().getValue();
@@ -73,10 +101,8 @@
 							MonitoringEditPart editPart = (MonitoringEditPart)getHost();
 							if (null != editPart) {
 								editPart.getNameLabel().setText(value);
-							}
-							
-						}
-										
+							}							
+						}										
 			});
 		}
 	}
@@ -108,7 +134,7 @@
 		l.setBorder(new MarginBorder(0, 5, 0, 5));
 		l.setText("N/A");
 		l.setMinimumSize(new Dimension(50, 1));
-		l.setAlpha(190);
+		l.setAlpha(PreferenceConstants.getMonitoringTransparency());
 		return l;
 	}
 
diff --git a/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/MonitoringPreferences.java b/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/MonitoringPreferences.java
index 0136cc1..285438d 100644
--- a/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/MonitoringPreferences.java
+++ b/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/MonitoringPreferences.java
@@ -47,27 +47,28 @@
 
 		IntegerFieldEditor polling = new IntegerFieldEditor(
 				PreferenceConstants.P_POLLING_INTERVAL, "Polling interval in ms",
-				getFieldEditorParent(), 300);
+				getFieldEditorParent(), PreferenceConstants.P_POLLING_INTERVAL_DEVAULT_VALUE);
 		polling.setValidRange(1, 60000);
 
 		addField(polling);
 
 		IntegerFieldEditor connectionTimeout = new IntegerFieldEditor(
 				PreferenceConstants.P_RESPONSE_TIMEOUT, "Response Timout in ms",
-				getFieldEditorParent(), 3000);
+				getFieldEditorParent(), PreferenceConstants.P_RESPONSE_TIMEOUT_DEVAULT_VALUE);
 		connectionTimeout.setValidRange(1, 60000);
-
 		addField(connectionTimeout);
+		
+
+		IntegerFieldEditor monitoringTransparency = new IntegerFieldEditor(
+				PreferenceConstants.P_MONITORING_TRANSPARENCY, "Monitoring indicator transparency level",
+				getFieldEditorParent(), PreferenceConstants.P_MONITORING_TRANSPARENCY_VALUE);
+		monitoringTransparency.setValidRange(100, 255);
+		addField(monitoringTransparency);
 
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
 	public void init(IWorkbench workbench) {
+		//nothing todo here
 	}
 
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/PreferenceConstants.java b/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/PreferenceConstants.java
index fb018cc..2e71191 100644
--- a/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/PreferenceConstants.java
+++ b/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/PreferenceConstants.java
@@ -23,13 +23,17 @@
 
 	public static final String P_FORCE_COLOR = "forceColor"; //$NON-NLS-1$
 
-	static final String P_POLLING_INTERVAL = "pollingInterval"; //$NON-NLS-1$
+	public static final String P_POLLING_INTERVAL = "pollingInterval"; //$NON-NLS-1$
 	
-	static final int P_POLLING_INTERVAL_DEVAULT_VALUE = 300;
+	public static final int P_POLLING_INTERVAL_DEVAULT_VALUE = 300;
 
-	static final String P_RESPONSE_TIMEOUT = "responseTimeout"; //$NON-NLS-1$
+	public static final String P_RESPONSE_TIMEOUT = "responseTimeout"; //$NON-NLS-1$
 	
-	static final int P_RESPONSE_TIMEOUT_DEVAULT_VALUE = 3000;
+	public static final int P_RESPONSE_TIMEOUT_DEVAULT_VALUE = 3000;
+	
+	public static final String P_MONITORING_TRANSPARENCY = "monitoringTransparency"; //$NON-NLS-1$
+	
+	public static final int P_MONITORING_TRANSPARENCY_VALUE = 190;
 	
 	public static int getTimeOutValue(){
 		int timeout = Activator.getDefault().getPreferenceStore().getInt(PreferenceConstants.P_RESPONSE_TIMEOUT);
@@ -46,5 +50,13 @@
 		}		
 		return timeout;
 	}
+	
+	public static int getMonitoringTransparency(){
+		int transparency = Activator.getDefault().getPreferenceStore().getInt(PreferenceConstants.P_MONITORING_TRANSPARENCY);
+		if(0 == transparency){
+			transparency = P_MONITORING_TRANSPARENCY_VALUE;
+		}		
+		return transparency;
+	}
 
 }
diff --git a/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/PreferenceInitializer.java b/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/PreferenceInitializer.java
index ee8f41b..029e689 100644
--- a/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/PreferenceInitializer.java
+++ b/plugins/org.eclipse.fordiac.ide.monitoring/src/org/eclipse/fordiac/ide/monitoring/preferences/PreferenceInitializer.java
@@ -40,6 +40,7 @@
 
 		store.setDefault(PreferenceConstants.P_RESPONSE_TIMEOUT, PreferenceConstants.P_RESPONSE_TIMEOUT_DEVAULT_VALUE);
 		store.setDefault(PreferenceConstants.P_POLLING_INTERVAL, PreferenceConstants.P_POLLING_INTERVAL_DEVAULT_VALUE);
+		store.setDefault(PreferenceConstants.P_MONITORING_TRANSPARENCY, PreferenceConstants.P_MONITORING_TRANSPARENCY_VALUE);
 	}
 
 }