X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.event%2Fsrc%2Forg%2Fsimantics%2Fevent%2Fview%2Fcontribution%2FEventLabelRule.java;h=aa5f8d87f9047158aa452ac13ff1c1e49b27de8c;hb=db1eda83343fd8d26d6d6c340e70fc0e663d8808;hp=9846c7394037eafa1048e1e4b43bd7fa09d2fee4;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git
diff --git a/bundles/org.simantics.event/src/org/simantics/event/view/contribution/EventLabelRule.java b/bundles/org.simantics.event/src/org/simantics/event/view/contribution/EventLabelRule.java
index 9846c7394..aa5f8d87f 100644
--- a/bundles/org.simantics.event/src/org/simantics/event/view/contribution/EventLabelRule.java
+++ b/bundles/org.simantics.event/src/org/simantics/event/view/contribution/EventLabelRule.java
@@ -1,167 +1,167 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2011 Association for Decentralized Information Management
- * in Industry THTH ry.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * VTT Technical Research Centre of Finland - initial API and implementation
- *******************************************************************************/
-package org.simantics.event.view.contribution;
-
-import java.math.RoundingMode;
-import java.text.NumberFormat;
-import java.util.Locale;
-import java.util.Map;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.simantics.browsing.ui.model.labels.LabelRule;
-import org.simantics.databoard.Bindings;
-import org.simantics.db.ReadGraph;
-import org.simantics.db.Resource;
-import org.simantics.db.common.utils.NameUtils;
-import org.simantics.db.exception.DatabaseException;
-import org.simantics.event.ontology.EventResource;
-import org.simantics.event.view.Constants;
-import org.simantics.layer0.Layer0;
-import org.simantics.utils.datastructures.ArrayMap;
-import org.simantics.utils.format.TimeFormat;
-
-/**
- * @author Tuukka Lehtonen
- */
-public enum EventLabelRule implements LabelRule {
-
- INSTANCE;
-
- public static EventLabelRule get() {
- return INSTANCE;
- }
-
- private static final NumberFormat secondFormatter;
- private static final TimeFormat timeFormat = new TimeFormat(Double.MAX_VALUE, 3);
-
- static {
- secondFormatter = NumberFormat.getNumberInstance(Locale.US);
- secondFormatter.setMinimumFractionDigits(2);
- secondFormatter.setMaximumFractionDigits(3);
- secondFormatter.setRoundingMode(RoundingMode.HALF_EVEN);
- }
-
- public static String formatSeconds(double time) {
- return secondFormatter.format(time);
- }
-
- /**
- * Formats a time specified as a double value in seconds in format
- * hh:mm:ss.SSS
- *
- * @param time
- * @return
- */
- public static String formatHMSS(double time) {
- return timeFormat.format(time);
- }
-
- @Override
- public boolean isCompatible(Class> contentType) {
- return contentType.equals(Resource.class);
- }
-
- public Map getLabel(ReadGraph graph, Object content, boolean allInformation) throws DatabaseException {
-
- IEclipsePreferences chartPreferenceNode = InstanceScope.INSTANCE.getNode( "org.simantics.charts" );
- boolean timeFormat = chartPreferenceNode.get("chart.timeformat", "Time").equals("Time"); // Time/Decimal
-
- Resource event = (Resource) content;
-
- Layer0 L0 = Layer0.getInstance(graph);
- EventResource EVENT = EventResource.getInstance(graph);
-
- String tag = graph.getPossibleRelatedValue(event, EVENT.Event_tag, Bindings.STRING);
- String message = graph.getPossibleRelatedValue(event, EVENT.Event_message, Bindings.STRING);
- if (message == null) {
- message = graph.getPossibleRelatedValue(event, L0.HasLabel, Bindings.STRING);
- if (message == null)
- message = graph.getPossibleRelatedValue(event, L0.HasName, Bindings.STRING);
- if (message == null)
- message = NameUtils.getSafeLabel(graph, event);
- }
-
- StringBuilder eventType = new StringBuilder();
- Integer eventTypeNumber = graph.getPossibleRelatedValue(event, EVENT.Event_typeNumber);
- Resource et = graph.getPossibleObject(event, EVENT.Event_type);
- if (et != null) {
- if (eventTypeNumber != null)
- eventType.append(eventTypeNumber).append(": ");
- eventType.append(NameUtils.getSafeLabel(graph, et));
- } else if (eventTypeNumber != null) {
- eventType.append(eventTypeNumber);
- }
-
- double timeNumeric = getTimestamp(graph, event, 0.0);
- String time = getTimestampString(graph, timeNumeric, timeFormat);
-
- Integer index = graph.getPossibleRelatedValue(event, EVENT.Event_index, Bindings.INTEGER);
- String indexS = "";
- if (index != null)
- indexS = String.valueOf(index);
-
- double returnTimeNumeric = 0;
- String returnTime = null;
- Resource returnedBy = graph.getPossibleObject(event, EVENT.ReturnedBy);
- if (returnedBy != null) {
- returnTimeNumeric = getTimestamp(graph, returnedBy, 0.0);
- returnTime = getTimestampString(graph, returnTimeNumeric, timeFormat);
- }
-
- String sourceName = graph.getPossibleRelatedValue(event, EVENT.Event_sourceName);
- String milestone = null;
- String returned = null;
-
- if (allInformation) {
- returned = returnedBy != null ? "Yes" : "";
- if (returnTime == null)
- returnTime = "";
-
- milestone = "";
- if (graph.hasStatement(event, EVENT.Milestone)) {
- milestone = graph.getPossibleRelatedValue(event, EVENT.Event_milestoneLabel);
- if (milestone == null) milestone = "?";
- }
- }
-
- return ArrayMap.make(Constants.COLUMN_KEYS, new String[] {
- indexS,
- time,
- String.valueOf(timeNumeric),
- milestone,
- eventType.toString(),
- returned,
- tag,
- message,
- returnTime,
- String.valueOf(returnTimeNumeric),
- sourceName
- });
- }
-
- @Override
- public Map getLabel(ReadGraph graph, Object content) throws DatabaseException {
- return getLabel(graph, content, false);
- }
-
- public static double getTimestamp(ReadGraph graph, Resource event, double defaultValue) throws DatabaseException {
- EventResource EVENT = EventResource.getInstance(graph);
- Double d = graph.getPossibleRelatedValue(event, EVENT.HasTimestamp, Bindings.DOUBLE);
- return d != null ? d : defaultValue;
- }
-
- public static String getTimestampString(ReadGraph graph, double t, boolean timeFormat) {
- return timeFormat ? formatHMSS(t) : formatSeconds(t);
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2007, 2011 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.event.view.contribution;
+
+import java.math.RoundingMode;
+import java.text.NumberFormat;
+import java.util.Locale;
+import java.util.Map;
+
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.simantics.browsing.ui.model.labels.LabelRule;
+import org.simantics.databoard.Bindings;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.common.utils.NameUtils;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.event.ontology.EventResource;
+import org.simantics.event.view.Constants;
+import org.simantics.layer0.Layer0;
+import org.simantics.utils.datastructures.ArrayMap;
+import org.simantics.utils.format.TimeFormat;
+
+/**
+ * @author Tuukka Lehtonen
+ */
+public enum EventLabelRule implements LabelRule {
+
+ INSTANCE;
+
+ public static EventLabelRule get() {
+ return INSTANCE;
+ }
+
+ private static final NumberFormat secondFormatter;
+ private static final TimeFormat timeFormat = new TimeFormat(Double.MAX_VALUE, 3);
+
+ static {
+ secondFormatter = NumberFormat.getNumberInstance(Locale.US);
+ secondFormatter.setMinimumFractionDigits(2);
+ secondFormatter.setMaximumFractionDigits(3);
+ secondFormatter.setRoundingMode(RoundingMode.HALF_EVEN);
+ }
+
+ public static String formatSeconds(double time) {
+ return secondFormatter.format(time);
+ }
+
+ /**
+ * Formats a time specified as a double value in seconds in format
+ * hh:mm:ss.SSS
+ *
+ * @param time
+ * @return
+ */
+ public static String formatHMSS(double time) {
+ return timeFormat.format(time);
+ }
+
+ @Override
+ public boolean isCompatible(Class> contentType) {
+ return contentType.equals(Resource.class);
+ }
+
+ public Map getLabel(ReadGraph graph, Object content, boolean allInformation) throws DatabaseException {
+
+ IEclipsePreferences chartPreferenceNode = InstanceScope.INSTANCE.getNode( "org.simantics.charts" );
+ boolean timeFormat = chartPreferenceNode.get("chart.timeformat", "Time").equals("Time"); // Time/Decimal
+
+ Resource event = (Resource) content;
+
+ Layer0 L0 = Layer0.getInstance(graph);
+ EventResource EVENT = EventResource.getInstance(graph);
+
+ String tag = graph.getPossibleRelatedValue(event, EVENT.Event_tag, Bindings.STRING);
+ String message = graph.getPossibleRelatedValue(event, EVENT.Event_message, Bindings.STRING);
+ if (message == null) {
+ message = graph.getPossibleRelatedValue(event, L0.HasLabel, Bindings.STRING);
+ if (message == null)
+ message = graph.getPossibleRelatedValue(event, L0.HasName, Bindings.STRING);
+ if (message == null)
+ message = NameUtils.getSafeLabel(graph, event);
+ }
+
+ StringBuilder eventType = new StringBuilder();
+ Integer eventTypeNumber = graph.getPossibleRelatedValue(event, EVENT.Event_typeNumber);
+ Resource et = graph.getPossibleObject(event, EVENT.Event_type);
+ if (et != null) {
+ if (eventTypeNumber != null)
+ eventType.append(eventTypeNumber).append(": ");
+ eventType.append(NameUtils.getSafeLabel(graph, et));
+ } else if (eventTypeNumber != null) {
+ eventType.append(eventTypeNumber);
+ }
+
+ double timeNumeric = getTimestamp(graph, event, 0.0);
+ String time = getTimestampString(graph, timeNumeric, timeFormat);
+
+ Integer index = graph.getPossibleRelatedValue(event, EVENT.Event_index, Bindings.INTEGER);
+ String indexS = "";
+ if (index != null)
+ indexS = String.valueOf(index);
+
+ double returnTimeNumeric = 0;
+ String returnTime = null;
+ Resource returnedBy = graph.getPossibleObject(event, EVENT.ReturnedBy);
+ if (returnedBy != null) {
+ returnTimeNumeric = getTimestamp(graph, returnedBy, 0.0);
+ returnTime = getTimestampString(graph, returnTimeNumeric, timeFormat);
+ }
+
+ String sourceName = graph.getPossibleRelatedValue(event, EVENT.Event_sourceName);
+ String milestone = null;
+ String returned = null;
+
+ if (allInformation) {
+ returned = returnedBy != null ? "Yes" : "";
+ if (returnTime == null)
+ returnTime = "";
+
+ milestone = "";
+ if (graph.hasStatement(event, EVENT.Milestone)) {
+ milestone = graph.getPossibleRelatedValue(event, EVENT.Event_milestoneLabel);
+ if (milestone == null) milestone = "?";
+ }
+ }
+
+ return ArrayMap.make(Constants.COLUMN_KEYS, new String[] {
+ indexS,
+ time,
+ String.valueOf(timeNumeric),
+ milestone,
+ eventType.toString(),
+ returned,
+ tag,
+ message,
+ returnTime,
+ String.valueOf(returnTimeNumeric),
+ sourceName
+ });
+ }
+
+ @Override
+ public Map getLabel(ReadGraph graph, Object content) throws DatabaseException {
+ return getLabel(graph, content, false);
+ }
+
+ public static double getTimestamp(ReadGraph graph, Resource event, double defaultValue) throws DatabaseException {
+ EventResource EVENT = EventResource.getInstance(graph);
+ Double d = graph.getPossibleRelatedValue(event, EVENT.HasTimestamp, Bindings.DOUBLE);
+ return d != null ? d : defaultValue;
+ }
+
+ public static String getTimestampString(ReadGraph graph, double t, boolean timeFormat) {
+ return timeFormat ? formatHMSS(t) : formatSeconds(t);
+ }
+
+}