mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Humongous merge. It is incomplete, however; faces-config-navigation.xml and ClientConfigElement
were both beyond me, and are just the raw conflict merge data. If Kev can't figure out how they should go together by tomorrow AM (for me) I'll dig back in. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4306 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
123
source/java/org/alfresco/repo/template/Classification.java
Normal file
123
source/java/org/alfresco/repo/template/Classification.java
Normal file
@@ -0,0 +1,123 @@
|
||||
/*
|
||||
* Copyright (C) 2005 Alfresco, Inc.
|
||||
*
|
||||
* Licensed under the Mozilla Public License version 1.1
|
||||
* with a permitted attribution clause. You may obtain a
|
||||
* copy of the License at
|
||||
*
|
||||
* http://www.alfresco.org/legal/license.txt
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific
|
||||
* language governing permissions and limitations under the
|
||||
* License.
|
||||
*/
|
||||
package org.alfresco.repo.template;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import org.alfresco.repo.jscript.CategoryTemplateNode;
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
import org.alfresco.service.cmr.repository.TemplateImageResolver;
|
||||
import org.alfresco.service.cmr.repository.TemplateNode;
|
||||
import org.alfresco.service.cmr.search.CategoryService;
|
||||
import org.alfresco.service.namespace.QName;
|
||||
|
||||
/**
|
||||
* Support for finding classifications and their root categories.
|
||||
*
|
||||
* @author Andy Hind
|
||||
*/
|
||||
public final class Classification
|
||||
{
|
||||
private ServiceRegistry services;
|
||||
private TemplateImageResolver imageResolver;
|
||||
private StoreRef storeRef;
|
||||
|
||||
public Classification(StoreRef storeRef, ServiceRegistry services, TemplateImageResolver imageResolver)
|
||||
{
|
||||
this.storeRef = storeRef;
|
||||
this.services = services;
|
||||
this.imageResolver = imageResolver;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find all the category nodes in a given classification.
|
||||
*
|
||||
* @param aspect
|
||||
*
|
||||
* @return all the category nodes in a given classification.
|
||||
*/
|
||||
public List<CategoryTemplateNode> getAllCategoryNodes(String aspect)
|
||||
{
|
||||
return buildCategoryNodes(services.getCategoryService().getCategories(storeRef, createQName(aspect),
|
||||
CategoryService.Depth.ANY));
|
||||
}
|
||||
|
||||
/**
|
||||
* Find all the category nodes in a given classification.
|
||||
*
|
||||
* @param aspect
|
||||
*
|
||||
* @return all the category nodes in a given classification.
|
||||
*/
|
||||
public List<CategoryTemplateNode> getAllCategoryNodes(QName aspect)
|
||||
{
|
||||
return buildCategoryNodes(services.getCategoryService().getCategories(storeRef, aspect,
|
||||
CategoryService.Depth.ANY));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return all the aspects that define a classification.
|
||||
*/
|
||||
public List<QName> getAllClassificationAspects()
|
||||
{
|
||||
Collection<QName> aspects = services.getCategoryService().getClassificationAspects();
|
||||
ArrayList<QName> answer = new ArrayList<QName>(aspects.size());
|
||||
answer.addAll(aspects);
|
||||
return answer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the root categories in a classification.
|
||||
*
|
||||
* @param aspect
|
||||
*
|
||||
* @return List of TemplateNode
|
||||
*/
|
||||
public List<CategoryTemplateNode> getRootCategories(String aspect)
|
||||
{
|
||||
return buildCategoryNodes(services.getCategoryService().getRootCategories(storeRef, createQName(aspect)));
|
||||
}
|
||||
|
||||
|
||||
private List<CategoryTemplateNode> buildCategoryNodes(Collection<ChildAssociationRef> cars)
|
||||
{
|
||||
ArrayList<CategoryTemplateNode> categoryNodes = new ArrayList<CategoryTemplateNode>(cars.size());
|
||||
for (ChildAssociationRef car : cars)
|
||||
{
|
||||
categoryNodes.add(new CategoryTemplateNode(car.getChildRef(), this.services, this.imageResolver));
|
||||
}
|
||||
return categoryNodes;
|
||||
}
|
||||
|
||||
private QName createQName(String s)
|
||||
{
|
||||
QName qname;
|
||||
if (s.indexOf(QName.NAMESPACE_BEGIN) != -1)
|
||||
{
|
||||
qname = QName.createQName(s);
|
||||
}
|
||||
else
|
||||
{
|
||||
qname = QName.createQName(s, this.services.getNamespaceService());
|
||||
}
|
||||
return qname;
|
||||
}
|
||||
}
|
@@ -301,6 +301,13 @@ public class FreeMarkerProcessor implements TemplateProcessor
|
||||
// current date/time is useful to have and isn't supplied by FreeMarker by default
|
||||
model.put("date", new Date());
|
||||
|
||||
// Session support
|
||||
model.put("session", new Session(services, imageResolver));
|
||||
|
||||
// Classification support
|
||||
|
||||
model.put("classification", new Classification(companyHome.getStoreRef(), services, imageResolver));
|
||||
|
||||
// add custom method objects
|
||||
model.put("hasAspect", new HasAspectMethod());
|
||||
model.put("message", new I18NMessageMethod());
|
||||
|
50
source/java/org/alfresco/repo/template/Session.java
Normal file
50
source/java/org/alfresco/repo/template/Session.java
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2005 Alfresco, Inc.
|
||||
*
|
||||
* Licensed under the Mozilla Public License version 1.1
|
||||
* with a permitted attribution clause. You may obtain a
|
||||
* copy of the License at
|
||||
*
|
||||
* http://www.alfresco.org/legal/license.txt
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
||||
* either express or implied. See the License for the specific
|
||||
* language governing permissions and limitations under the
|
||||
* License.
|
||||
*/
|
||||
package org.alfresco.repo.template;
|
||||
|
||||
import org.alfresco.service.ServiceRegistry;
|
||||
import org.alfresco.service.cmr.repository.TemplateImageResolver;
|
||||
|
||||
/**
|
||||
* Support session information in free marker templates.
|
||||
*
|
||||
* @author Andy Hind
|
||||
*/
|
||||
public class Session
|
||||
{
|
||||
|
||||
private ServiceRegistry services;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private TemplateImageResolver imageResolver;
|
||||
|
||||
public Session(ServiceRegistry services, TemplateImageResolver imageResolver)
|
||||
{
|
||||
this.services = services;
|
||||
this.imageResolver = imageResolver;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current authentication ticket.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getTicket()
|
||||
{
|
||||
return services.getAuthenticationService().getCurrentTicket();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user