r1413 - in xwiki-apps/gelc/gelcv1/trunk/gelcplugins: . src/main/java/org/gelc/xwiki/plugins/assets src/main/java/org/gelc/xwiki/plugins/framework src/main/java/org/gelc/xwiki/plugins/licence src/main/java/org/gelc/xwiki/plugins/mime src/test/java/org/gelc/xwiki/plugins/mime
Jeremi Joslin
jeremi at users.forge.objectweb.org
Fri Oct 20 03:36:31 CEST 2006
Author: jeremi
Date: 2006-10-20 03:36:21 +0200 (Fri, 20 Oct 2006)
New Revision: 1413
Modified:
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/gelcplugins.iml
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetConstant.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetManagerPlugin.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetManagerPluginApi.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/framework/FrameworkManagerPlugin.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/framework/ImportFilter.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/Licence.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeType.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypeConstant.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypePlugin.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypePluginAPI.java
xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/test/java/org/gelc/xwiki/plugins/mime/MimeTypePluginTest.java
Log:
[GELC]
* Add the Licence manager
* refactor the mimetype
* add functions to the asset Manager
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/gelcplugins.iml
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/gelcplugins.iml 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/gelcplugins.iml 2006-10-20 01:36:21 UTC (rev 1413)
@@ -16,7 +16,7 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="xwiki" level="project" />
<orderEntry type="module" module-name="xwiki" />
- <orderEntry type="library" name="Tomcat 5.0" level="application" />
+ <orderEntry type="library" name="Tomcat XWiki" level="application_server_libraries" />
<orderEntryProperties />
</component>
</module>
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetConstant.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetConstant.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetConstant.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -1,6 +1,26 @@
+/*
+ * Copyright 2006, XpertNet SARL, and individual contributors as indicated
+ * by the contributors.txt.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ *
+ * @author jeremi
+ */
package org.gelc.xwiki.plugins.assets;
-
public interface AssetConstant {
public final static String PLUGIN_NAME = "asset_manager";
@@ -14,36 +34,63 @@
public final static String ASSET_TEMPORARY_SPACE = "AssetTemp";
+ /**
+ * Class FrameworkItemAssetClass
+ */
public final static String FRAMEWORK_ASSET_CLASS_FULLNAME = "XWiki.FrameworkItemAssetClass";
public final static String FRAMEWORK_ASSET_CLASS_NAME = "FrameworkItemAssetClass";
public final static String CLASS_FRAMEWORK_ITEM = "framework_item";
- public final static String ASSET_CLASS_FULLNAME = "XWiki.AssetClass";
- public final static String ASSET_CLASS_NAME = "AssetClass";
- public final static String ASSET_ITEM_MIME_TYPE = "mimeType";
- public final static String ASSET_ITEM_MIME_TITLE = "title";
- public final static String ASSET_ITEM_MIME_DESCRIPTION = "description";
- public final static String ASSET_ITEM_MIME_KEYWORDS = "keywords";
+ /**
+ * Class AssetClass
+ */
+ public static final String ASSET_CLASS_FULLNAME = "XWiki.AssetClass";
+ public static final String ASSET_CLASS_NAME = "AssetClass";
- public final static String ASSET_ITEM_LEARNING_RESOURCE_TYPE = "learning_resource_type";
- public final static String ASSET_ITEM_LEARNING_RESOURCE_TYPE_VALUES = "Animation|Activity|Audio|Collection|Diagram|Exam/Assessment|Exercise|Experiment|Figure|Graph|Graphic/Image|Index|Lecture|Narrative text|Problem statement|Question bank|Question/Item|Questionnaire/Quiz|Self-assessment|Simulation|Slide|Table|Video|Other|Lesson Plan|Content resource|Text|Text book|Book (Other)|Links|Learning Object|Curriculum Package|Zip Archive";
+ public static final String ASSET_ITEM_TITLE = "title";
+ public static final String ASSET_ITEM_DESCRIPTION = "description";
+ public static final String ASSET_ITEM_KEYWORDS = "keywords";
+ public static final String ASSET_ITEM_AGGREGATION_LEVEL = "aggregation_level";
+ public static final String ASSET_ITEM_AGGREGATION_LEVEL_VALUES = "Asset|Material|Lecture|Unit|Course";
+ public static final String ASSET_ITEM_CATEGORY = "category";
- public final static String ASSET_ITEM_DIFICULTY = "dificulty";
- public final static String ASSET_ITEM_DIFICULTY_VALUES = "Very easy|Easy|Medium|Difficult|Very difficult";
+ public static final String ASSET_ITEM_STATUS = "status";
+ public static final String ASSET_ITEM_STATUS_VALUES = "Draft|Final|Revised|Unavailable";
- public final static String ASSET_ITEM_EDUCATIONAL_LEVEL = "educational_level";
- public final static String ASSET_ITEM_EDUCATIONAL_LEVEL_VALUES = "Preschool|Early Elementary|Upper Elementary|Middle School|High School|Higher Ed|Professional";
+ public static final String ASSET_ITEM_LEARNING_RESOURCE_TYPE = "learning_resource_type";
+ public static final String ASSET_ITEM_LEARNING_RESOURCE_TYPE_VALUES = "Animation|Activity|Audio|Collection|Diagram|Exam/Assessment|Exercise|Experiment|Figure|Graph|Graphic/Image|Index|Lecture|Narrative text|Problem statement|Question bank|Question/Item|Questionnaire/Quiz|Self-assessment|Simulation|Slide|Table|Video|Other|Lesson Plan|Content resource|Text|Text book|Book (Other)|Links|Learning Object|Curriculum Package|Zip Archive";
+ public static final String ASSET_ITEM_DIFICULTY = "dificulty";
+ public static final String ASSET_ITEM_DIFICULTY_VALUES = "Very easy|Easy|Medium|Difficult|Very difficult";
- public final static String ASSET_ITEM_CATEGORY = "category";
+ public static final String ASSET_ITEM_EDUCATIONAL_LEVEL = "educational_level";
+ public static final String ASSET_ITEM_EDUCATIONAL_LEVEL_VALUES = "Preschool|Early Elementary|Upper Elementary|Middle School|High School|Higher Ed|Professional";
+ /**
+ * Class ExternalAssetClass
+ */
+ public static final String EXTERNAL_ASSET_CLASS_FULLNAME = "XWiki.ExternalAssetClass";
+ public static final String EXTERNAL_ASSET_CLASS_NAME = "ExternalAssetClass";
- public final static String EXTERNAL_ASSET_CLASS_FULLNAME = "XWiki.ExternalAssetClass";
- public final static String EXTERNAL_ASSET_CLASS_NAME = "ExternalAssetClass";
+ public static final String EXTERNAL_ASSET_LINK = "link";
+ public static final String REQUEST_ASSET_FULLNAME = "assetName";
- public final static String EXTERNAL_ASSET_LINK = "link";
+
+ /**
+ * Class AssetLicenseClass
+ */
+ public static final String ASSET_LICENCE_CLASS_FULLNAME = "XWiki.AssetLicenseClass";
+ public static final String ASSET_LICENCE_CLASS_NAME = "AssetLicenseClass";
+
+ public static final String ASSET_LICENCE_ITEM_RIGHTS_HOLDER = "rightsHolder";
+ public static final String ASSET_LICENCE_ITEM_EXTERNAL_RIGHTS_HOLDER = "externalRightsHolder";
+ public static final String ASSET_LICENCE_ITEM_LICENCE_TYPE = "licenseType";
+ public static final String ASSET_LICENCE_ITEM_EXPIRY_DATE = "expiryDate";
+
+
+
}
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetManagerPlugin.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetManagerPlugin.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetManagerPlugin.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -25,11 +25,14 @@
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
import com.xpn.xwiki.api.Api;
+import com.xpn.xwiki.api.Document;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.objects.classes.BaseClass;
import com.xpn.xwiki.plugin.XWikiDefaultPlugin;
import com.xpn.xwiki.plugin.XWikiPluginInterface;
+import com.xpn.xwiki.web.XWikiRequest;
import org.gelc.xwiki.plugins.mime.MimeTypePlugin;
+import org.gelc.xwiki.plugins.mime.MimeTypePluginAPI;
import java.io.IOException;
import java.io.InputStream;
@@ -76,16 +79,75 @@
return asset;
}
+ public Asset getTemporaryAssetDocument(String assetName, boolean create, XWikiContext context) throws XWikiException {
+ XWikiDocument doc = context.getWiki().getDocument(ASSET_TEMPORARY_SPACE, assetName, context);
+ if (doc.isNew() && create){
+ return createAssetDocument(assetName, context);
+ }
+ else if (doc.isNew() && !create){
+ return null;
+ }
+ return (Asset) doc.newDocument(context);
+ }
+ public String getAssetTemporarySpace(){
+ return ASSET_TEMPORARY_SPACE;
+ }
+
+ public String createOrUpdateAssetFromRequest(XWikiContext context) throws XWikiException {
+ XWikiRequest req = context.getRequest();
+ XWiki xwiki = context.getWiki();
+ String docName = req.get(REQUEST_ASSET_FULLNAME);
+ Asset asset;
+
+ com.xpn.xwiki.api.Object assetObject;
+
+ if (docName == null || docName.length() == 0){
+ docName = xwiki.getUniquePageName(ASSET_TEMPORARY_SPACE, context);
+ Document doc = xwiki.getDocument(ASSET_TEMPORARY_SPACE, docName, context).newDocument(context);
+ assetObject = doc.updateObjectFromRequest(ASSET_CLASS_FULLNAME);
+ String pageName = (String) assetObject.get(ASSET_ITEM_TITLE);
+ if (pageName == null)
+ pageName = docName;
+ else
+ pageName = xwiki.getUniquePageName(ASSET_TEMPORARY_SPACE, pageName, context);
+ asset = createAssetDocument(pageName, context);
+ asset.save();
+ }
+ else {
+ asset = (Asset) xwiki.getDocument(ASSET_TEMPORARY_SPACE, docName, context).newDocument(context);
+ }
+ if (!isAssetContentSetUp(asset, context)){
+ if (asset.addAttachments() > 0)
+ asset = (Asset) xwiki.getDocument(asset.getSpace(), asset.getName(), context).newDocument(context);
+ else
+ asset.addObjectsFromRequest(EXTERNAL_ASSET_CLASS_FULLNAME);
+ }
+ asset.updateObjectFromRequest(ASSET_CLASS_FULLNAME);
+
+ String[] classList = req.getParameterValues("classList");
+ if (classList != null)
+ for(int i = 0; i < classList.length; i++)
+ asset.updateObjectFromRequest(classList[i]);
+ asset.save();
+ return asset.getFullName();
+ }
+
+
public boolean isComplet(Asset asset, XWikiContext context) {
Map res = getStatusList(asset, context);
- if (res.get(ASSET_STATUS_ATTACHEMENT).equals(0) && res.get(ASSET_STATUS_EXTERNAL_LINK).equals(0))
+ if (!isAssetContentSetUp(asset, context))
return false;
if (res.get(ASSET_STATUS_FRAMEWORK_ITEM_SELECTED).equals(0))
return false;
return true;
}
+ public boolean isAssetContentSetUp(Asset asset, XWikiContext context){
+ Map res = getStatusList(asset, context);
+ return !(res.get(ASSET_STATUS_ATTACHEMENT).equals(0) && res.get(ASSET_STATUS_EXTERNAL_LINK).equals(0));
+ }
+
public Map getStatusList(Asset asset, XWikiContext context) {
Map res = new HashMap();
if (asset.getAttachmentList().size() == 0)
@@ -118,6 +180,7 @@
initFrameworkItemAssetClass(context);
initExternalAssetClass(context);
initAssetClass(context);
+ initLicenceClass(context);
}
private void initFrameworkItemAssetClass(XWikiContext context) throws XWikiException {
@@ -148,6 +211,39 @@
xwiki.saveDocument(doc, context);
}
+ private void initLicenceClass(XWikiContext context) throws XWikiException {
+ XWikiDocument doc;
+ XWiki xwiki = context.getWiki();
+ boolean needsUpdate = false;
+
+ try {
+ doc = xwiki.getDocument(ASSET_LICENCE_CLASS_FULLNAME, context);
+ } catch (Exception e) {
+ doc = new XWikiDocument();
+ doc.setSpace("XWiki");
+ doc.setName(ASSET_LICENCE_CLASS_NAME);
+ needsUpdate = true;
+ }
+
+ BaseClass bclass = doc.getxWikiClass();
+ bclass.setName(ASSET_LICENCE_CLASS_FULLNAME);
+ needsUpdate |= bclass.addTextField(ASSET_LICENCE_ITEM_RIGHTS_HOLDER, "Right holder", 500);
+ needsUpdate |= bclass.addDateField(ASSET_LICENCE_ITEM_EXPIRY_DATE, "Expiry date");
+ needsUpdate |= bclass.addTextField(ASSET_LICENCE_ITEM_EXTERNAL_RIGHTS_HOLDER, "External right holder", 500);
+ needsUpdate |= bclass.addTextField(ASSET_LICENCE_ITEM_LICENCE_TYPE, "Licence type", 500);
+
+ String content = doc.getContent();
+ if ((content==null)||(content.equals(""))) {
+ needsUpdate = true;
+ doc.setContent("1 " + ASSET_LICENCE_CLASS_FULLNAME);
+ }
+
+ if (needsUpdate)
+ xwiki.saveDocument(doc, context);
+ }
+
+
+
private void initAssetClass(XWikiContext context) throws XWikiException {
XWikiDocument doc;
XWiki xwiki = context.getWiki();
@@ -165,13 +261,15 @@
BaseClass bclass = doc.getxWikiClass();
bclass.setName(ASSET_CLASS_FULLNAME);
- needsUpdate |= bclass.addTextField(ASSET_ITEM_MIME_TITLE, "title", 50);
- needsUpdate |= bclass.addTextField(ASSET_ITEM_MIME_TYPE, "mimeType", 50);
- needsUpdate |= bclass.addTextAreaField(ASSET_ITEM_MIME_DESCRIPTION, "description", 80, 10);
- needsUpdate |= bclass.addTextAreaField(ASSET_ITEM_MIME_KEYWORDS, "keywords", 80, 10);
+ needsUpdate |= bclass.addTextField(ASSET_ITEM_TITLE, "title", 1000);
+ needsUpdate |= bclass.addTextAreaField(ASSET_ITEM_DESCRIPTION, "description", 80, 10);
+ needsUpdate |= bclass.addStaticListField(ASSET_ITEM_KEYWORDS, "keywords", 5, true, "");
+ needsUpdate |= bclass.addStaticListField(ASSET_ITEM_AGGREGATION_LEVEL, "Aggregation level", 5, false, ASSET_ITEM_AGGREGATION_LEVEL_VALUES);
+ needsUpdate |= bclass.addStaticListField(ASSET_ITEM_STATUS, "Status", 5, false, ASSET_ITEM_STATUS_VALUES);
+
needsUpdate |= bclass.addStaticListField(ASSET_ITEM_LEARNING_RESOURCE_TYPE, "Learnign resource Type", ASSET_ITEM_LEARNING_RESOURCE_TYPE_VALUES);
needsUpdate |= bclass.addStaticListField(ASSET_ITEM_DIFICULTY, "Dificulty", ASSET_ITEM_DIFICULTY_VALUES);
- needsUpdate |= bclass.addStaticListField(ASSET_ITEM_EDUCATIONAL_LEVEL, "Eucational Level", ASSET_ITEM_EDUCATIONAL_LEVEL_VALUES);
+ needsUpdate |= bclass.addStaticListField(ASSET_ITEM_EDUCATIONAL_LEVEL, "Educational Level", ASSET_ITEM_EDUCATIONAL_LEVEL_VALUES);
@@ -259,4 +357,18 @@
obj.set(EXTERNAL_ASSET_LINK, link);
return true;
}
+
+ public String getTechnicalMetaDataClassName(Asset asset, XWikiContext context) throws XWikiException {
+ /* if (asset.getAttachmentList().size() == 0)
+ return null;
+ String mimeType = ((Attachment)asset.getAttachmentList().get(0)).getMimeType();
+ if (mimeType == null || mimeType.length() == 0){
+ return null;
+ } */
+ asset.use(ASSET_CLASS_FULLNAME);
+ String category = (String) asset.get(ASSET_ITEM_CATEGORY);
+ MimeTypePluginAPI mtmng = (MimeTypePluginAPI) context.getWiki().getPluginApi(MimeTypePlugin.PLUGIN_NAME, context);
+ String docName = mtmng.getCategoryPageName(category);
+ return docName;
+ }
}
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetManagerPluginApi.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetManagerPluginApi.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/assets/AssetManagerPluginApi.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -48,10 +48,14 @@
return assetManagerPlugin.createAssetDocument(assetName, context);
}
- public Asset getAssetDocument(String assetName) {
- return null;
+ public Asset getTemporaryAssetDocument(String assetName) throws XWikiException {
+ return assetManagerPlugin.getTemporaryAssetDocument(assetName, true, context);
}
+ public Asset getTemporaryAssetDocument(String assetName, boolean create) throws XWikiException {
+ return assetManagerPlugin.getTemporaryAssetDocument(assetName, create, context);
+ }
+
public void addAttachment(InputStream iStream, String name, Asset asset) throws IOException, XWikiException {
assetManagerPlugin.addAttachment(iStream, name, asset, context);
}
@@ -100,7 +104,15 @@
return assetManagerPlugin.getExternalAsset(asset, context);
}
+ public String getTechnicalMetaDataClassName(Asset asset) throws XWikiException {
+ return assetManagerPlugin.getTechnicalMetaDataClassName(asset, context);
+ }
+ public String getAssetTemporarySpace(){
+ return assetManagerPlugin.getAssetTemporarySpace();
+ }
-
+ public String createOrUpdateAssetFromRequest() throws XWikiException {
+ return assetManagerPlugin.createOrUpdateAssetFromRequest(context);
+ }
}
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/framework/FrameworkManagerPlugin.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/framework/FrameworkManagerPlugin.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/framework/FrameworkManagerPlugin.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -230,7 +230,7 @@
public boolean testIntegrity(String frameworkName, XWikiContext context) {
boolean valid = true;
- Framework fmwk = null;
+ Framework fmwk;
try {
fmwk = getFramework(frameworkName, context);
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/framework/ImportFilter.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/framework/ImportFilter.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/framework/ImportFilter.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -27,13 +27,6 @@
import java.io.InputStream;
import java.util.Collection;
-/**
- * Created by IntelliJ IDEA.
- * User: jeremi
- * Date: Sep 27, 2006
- * Time: 2:06:58 PM
- * To change this template use File | Settings | File Templates.
- */
public interface ImportFilter {
String getPageName(Object item, XWikiContext context);
Framework readFramework(String frameworkName, InputStream iStream, XWikiContext context) throws XWikiException;
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/Licence.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/Licence.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/Licence.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -1,11 +1,33 @@
+/*
+ * Copyright 2006, XpertNet SARL, and individual contributors as indicated
+ * by the contributors.txt.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ *
+ * @author jeremi
+ */
package org.gelc.xwiki.plugins.licence;
-/**
- * Created by IntelliJ IDEA.
- * User: jeremi
- * Date: Oct 4, 2006
- * Time: 10:22:17 AM
- * To change this template use File | Settings | File Templates.
- */
-public class Licence {
+import com.xpn.xwiki.api.Document;
+import com.xpn.xwiki.doc.XWikiDocument;
+import com.xpn.xwiki.XWikiContext;
+
+
+public class Licence extends Document {
+ public Licence(XWikiDocument doc, XWikiContext context) {
+ super(doc, context);
+ }
}
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeType.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeType.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeType.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -30,11 +30,4 @@
super(doc, context);
}
- public String getCategory(){
- return (String) get(MimeTypeConstant.MIMETYPE_ITEM_CATEGORY);
- }
-
- public String getMimeType(){
- return (String) get(MimeTypeConstant.MIMETYPE_ITEM_MIME_TYPE);
- }
}
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypeConstant.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypeConstant.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypeConstant.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -32,4 +32,5 @@
public final static String MIMETYPE_ITEM_MIME_TYPE = "mimeType";
public final static String MIMETYPE_ITEM_CATEGORY = "category";
public final static String MIMETYPE_ITEM_EXTENSION = "extension";
+ public final static String MIMETYPE_ITEM_ICON = "icon";
}
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypePlugin.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypePlugin.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypePlugin.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -21,22 +21,23 @@
*/
package org.gelc.xwiki.plugins.mime;
+import com.xpn.xwiki.XWiki;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
-import com.xpn.xwiki.XWiki;
+import com.xpn.xwiki.api.Api;
+import com.xpn.xwiki.api.Object;
+import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.objects.classes.BaseClass;
-import com.xpn.xwiki.doc.XWikiDocument;
-import com.xpn.xwiki.api.Object;
-import com.xpn.xwiki.api.Api;
import com.xpn.xwiki.plugin.XWikiDefaultPlugin;
import com.xpn.xwiki.plugin.XWikiPluginInterface;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.gelc.xwiki.plugins.mdfw.MetaDataFrameworkPlugin;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
-import java.util.Iterator;
-import java.util.ArrayList;
public class MimeTypePlugin extends XWikiDefaultPlugin implements XWikiPluginInterface, MimeTypeConstant {
@@ -73,13 +74,28 @@
}
public void add(String mimeType, String category, String extension, XWikiContext context) throws XWikiException {
- String pageName = context.getWiki().getUniquePageName(MIMETYPE_SPACE, mimeType, context);
- MimeType doc = (MimeType) context.getWiki().getDocument(MIMETYPE_SPACE, pageName, context).newDocument(MimeType.class.getName(), context);
- doc.setCustomClass(MimeType.class.getName());
- Object obj = doc.newObject(MIMETYPE_CLASS_FULLNAME);
+ add(mimeType, category, extension, "", context);
+ }
+
+ public void add(String mimeType, String category, String extension, String image, XWikiContext context) throws XWikiException {
+ String pageName = context.getWiki().clearName(category, context);
+ XWikiDocument xwDoc = context.getWiki().getDocument(MIMETYPE_SPACE, pageName, context);
+ Object obj;
+ MimeType doc;
+
+ if (xwDoc.isNew()){
+ doc = (MimeType) xwDoc.newDocument(MimeType.class.getName(), context);
+ doc.setCustomClass(MimeType.class.getName());
+ doc.setTitle(category);
+ }
+ else
+ doc = (MimeType) xwDoc.newDocument(context);
+
+ obj = doc.newObject(MIMETYPE_CLASS_FULLNAME);
doc.use(obj);
doc.set(MIMETYPE_ITEM_MIME_TYPE, mimeType);
doc.set(MIMETYPE_ITEM_CATEGORY, category);
+ doc.set(MIMETYPE_ITEM_ICON, image);
doc.set(MIMETYPE_ITEM_EXTENSION, extension);
doc.save();
}
@@ -104,17 +120,25 @@
return null;
}
- public List getCategories(XWikiContext context) throws XWikiException {
+ public String getCategoryPageName(String category, XWikiContext context) throws XWikiException {
String hql = ", BaseObject as obj, StringProperty as prop where obj.name=doc.fullName"
+ " and obj.className='" + MIMETYPE_CLASS_FULLNAME + "' and prop.id.id = obj.id "
- + " and prop.id.name = '" + MIMETYPE_ITEM_CATEGORY + "' "
- + " group by prop.value";
+ + "and prop.id.name = '" + MIMETYPE_ITEM_CATEGORY + "' and prop.value='" + category + "'";
List list = context.getWiki().getStore().searchDocumentsNames(hql, context);
+ if (list.size() > 0)
+ return (String) list.get(0);
+ return null;
+ }
+
+ public List getCategories(XWikiContext context) throws XWikiException {
+ String hql = ", BaseObject as obj where obj.name=doc.fullName"
+ + " and obj.className='" + MIMETYPE_CLASS_FULLNAME + "'";
+ List list = context.getWiki().getStore().searchDocumentsNames(hql, context);
List categs = new ArrayList();
Iterator it = list.iterator();
while(it.hasNext()){
MimeType doc = (MimeType) context.getWiki().getDocument((String) it.next(), context).newDocument(context);
- categs.add(doc.getCategory());
+ categs.add(doc.getTitle());
}
return categs;
@@ -128,7 +152,7 @@
public static String getCategoriesListHsql(){
String hql = "select prop.value from BaseObject as obj, StringProperty as prop where "
+ " obj.className='" + MIMETYPE_CLASS_FULLNAME + "' and prop.id.id = obj.id "
- + " and prop.id.name = '" + MIMETYPE_ITEM_CATEGORY + "' "
+ + " and prop.id.name = '" + MIMETYPE_ITEM_CATEGORY + "'"
+ " group by prop.value";
return hql;
}
@@ -150,8 +174,8 @@
BaseClass bclass = doc.getxWikiClass();
bclass.setName(MIMETYPE_CLASS_FULLNAME);
needsUpdate |= bclass.addTextField(MIMETYPE_ITEM_MIME_TYPE, "Mime type", 50);
- needsUpdate |= bclass.addTextField(MIMETYPE_ITEM_CATEGORY, "Category", 50);
- needsUpdate |= bclass.addTextField(MIMETYPE_ITEM_EXTENSION, "extension", 50);
+ needsUpdate |= bclass.addTextField(MIMETYPE_ITEM_EXTENSION, "extension", 50);
+ needsUpdate |= bclass.addTextField(MIMETYPE_ITEM_ICON, "icon", 50);
String content = doc.getContent();
@@ -163,4 +187,18 @@
if (needsUpdate)
xwiki.saveDocument(doc, context);
}
+
+ public void importMimeType(String fileName, XWikiContext context) throws XWikiException, IOException {
+ String[] lines = context.getWiki().getResourceContent(fileName).split("\n");
+ for (int i = 1; i < lines.length; i++) {
+ String[] values = lines[i].split(",");
+ String mimeType = values[3];
+ String extension = values[2];
+ String category = values[1];
+ String image = "";
+ if (values.length >= 6)
+ image = values[5];
+ add(mimeType, category, extension, image, context);
+ }
+ }
}
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypePluginAPI.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypePluginAPI.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/mime/MimeTypePluginAPI.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -26,6 +26,7 @@
import com.xpn.xwiki.api.Api;
import java.util.List;
+import java.io.IOException;
public class MimeTypePluginAPI extends Api {
@@ -52,4 +53,12 @@
return plugin.getCategories(context);
}
+ public void importMimeType(String fileName) throws XWikiException, IOException {
+ plugin.importMimeType(fileName, context);
+ }
+
+ public String getCategoryPageName(String category) throws XWikiException {
+ return plugin.getCategoryPageName(category, context);
+ }
+
}
Modified: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/test/java/org/gelc/xwiki/plugins/mime/MimeTypePluginTest.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/test/java/org/gelc/xwiki/plugins/mime/MimeTypePluginTest.java 2006-10-20 01:28:58 UTC (rev 1412)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/test/java/org/gelc/xwiki/plugins/mime/MimeTypePluginTest.java 2006-10-20 01:36:21 UTC (rev 1413)
@@ -25,6 +25,7 @@
import com.xpn.xwiki.test.HibernateTestCase;
import com.xpn.xwiki.web.XWikiServletURLFactory;
+import java.io.IOException;
import java.net.URL;
@@ -43,12 +44,22 @@
mtmng.add("image/jpeg", "picture(photo)", "jpg");
mtmng.add("application/msword", "document", "doc");
- assertEquals("document", mtmng.getCategoryByExtension("doc").getCategory());
- assertEquals("document", mtmng.getCategoryByMimetype("application/msword").getCategory());
+ assertEquals("document", mtmng.getCategoryByExtension("doc").getTitle());
+ assertEquals("document", mtmng.getCategoryByMimetype("application/msword").getTitle());
- assertEquals("picture(photo)", mtmng.getCategoryByExtension("gif").getCategory());
- assertEquals("picture(photo)", mtmng.getCategoryByMimetype("image/jpeg").getCategory());
+ assertEquals("picture(photo)", mtmng.getCategoryByExtension("gif").getTitle());
+ assertEquals("picture(photo)", mtmng.getCategoryByMimetype("image/jpeg").getTitle());
assertEquals(2, mtmng.getCategories().size());
}
+
+ /* public void testImport() throws IOException, XWikiException {
+ MimeTypePluginAPI mtmng = (MimeTypePluginAPI) xwiki.getPluginApi(MimeTypeConstant.PLUGIN_NAME, context);
+
+ mtmng.importMimeType("/metadata.csv");
+ assertEquals("picture(photo)", mtmng.getCategoryByExtension("gif").getTitle());
+ assertEquals("document", mtmng.getCategoryByMimetype("application/msword").getTitle());
+
+ }*/
+
}
More information about the Xwiki-notifications
mailing list