Bug 517159: Use meaningful display name for spreadsheets

Updated getDisplayName() for the office handler to use the
content in the column selected by the user in the office
preference page.

Also updated the createWrapper() to store the data of
the row and not only the id. This makes sure that resolveWrapper()
has enough data to recreate the row with its contents.
diff --git a/bundles/org.eclipse.capra.handler.office/META-INF/MANIFEST.MF b/bundles/org.eclipse.capra.handler.office/META-INF/MANIFEST.MF
index 7f17e54..564804b 100644
--- a/bundles/org.eclipse.capra.handler.office/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.capra.handler.office/META-INF/MANIFEST.MF
@@ -6,5 +6,6 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.capra.core,
  org.eclipse.capra.ui.office,
- org.eclipse.core.resources
+ org.eclipse.core.resources,
+ org.eclipse.ui
 Bundle-Vendor: Capra Development Team
diff --git a/bundles/org.eclipse.capra.handler.office/src/org/eclipse/capra/handler/office/OfficeHandler.java b/bundles/org.eclipse.capra.handler.office/src/org/eclipse/capra/handler/office/OfficeHandler.java
index 6a7019e..e3ee3bf 100644
--- a/bundles/org.eclipse.capra.handler.office/src/org/eclipse/capra/handler/office/OfficeHandler.java
+++ b/bundles/org.eclipse.capra.handler.office/src/org/eclipse/capra/handler/office/OfficeHandler.java
@@ -21,7 +21,9 @@
 import org.eclipse.capra.core.adapters.Connection;
 import org.eclipse.capra.core.handlers.AbstractArtifactHandler;
 import org.eclipse.capra.core.helpers.ExtensionPointHelper;
+import org.eclipse.capra.ui.office.Activator;
 import org.eclipse.capra.ui.office.model.CapraOfficeObject;
+import org.eclipse.capra.ui.office.preferences.OfficePreferences;
 import org.eclipse.emf.ecore.EObject;
 
 /**
@@ -37,10 +39,8 @@
 		// Returns the EObject corresponding to the input object if the input is
 		// an EObject, or if it is Adaptable to an EObject
 		ArtifactMetaModelAdapter adapter = ExtensionPointHelper.getArtifactWrapperMetaModelAdapter().get();
-		// TODO here artifactName is the same as the row/paragraph
-		// description. Should it be different?
 		EObject wrapper = adapter.createArtifact(artifactModel, this.getClass().getName(), officeObject.getUri(),
-				officeObject.getId(), officeObject.getUri());
+				officeObject.getData(), officeObject.getUri());
 		return wrapper;
 	}
 
@@ -50,12 +50,20 @@
 		String uri = adapter.getArtifactUri(wrapper);
 		CapraOfficeObject object = new CapraOfficeObject();
 		object.setUri(uri);
+		object.setData(adapter.getArtifactName(wrapper));
 		return object;
 	}
 
 	@Override
 	public String getDisplayName(CapraOfficeObject officeObject) {
-		return officeObject.getId();
+		int minAllowed = Activator.getDefault().getPreferenceStore()
+				.getInt(OfficePreferences.CHAR_COUNT);
+		String text = officeObject.toString();
+		int textLength = Math.min(text.length(), minAllowed);
+		if (textLength == minAllowed) {
+			text = text.substring(0, textLength) + "...";
+		}
+		return text;
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.capra.ui.office/META-INF/MANIFEST.MF b/bundles/org.eclipse.capra.ui.office/META-INF/MANIFEST.MF
index 67b6a9a..c5164f7 100644
--- a/bundles/org.eclipse.capra.ui.office/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.capra.ui.office/META-INF/MANIFEST.MF
@@ -20,7 +20,9 @@
  org.eclipse.core.runtime,
  org.eclipse.core.expressions
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.capra.ui.office.model,
+Export-Package: org.eclipse.capra.ui.office,
+ org.eclipse.capra.ui.office.model,
+ org.eclipse.capra.ui.office.preferences,
  org.eclipse.capra.ui.office.utils,
  org.eclipse.capra.ui.office.views
 Bundle-Activator: org.eclipse.capra.ui.office.Activator