Author: scabanovich
Date: 2010-09-28 09:58:27 -0400 (Tue, 28 Sep 2010)
New Revision: 25269
Removed:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/handlers/AddPageTemplateSupport.java
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/handlers/CreateTemplateFromPageHandler.java
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web/plugin.xml
trunk/jst/plugins/org.jboss.tools.jst.web/resources/meta/web-template.meta
trunk/jst/plugins/org.jboss.tools.jst.web/resources/meta/web.meta
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/helpers/AbstractWebProjectTemplate.java
Log:
JBIDE-6256
https://jira.jboss.org/browse/JBIDE-6256
Modified: trunk/jst/plugins/org.jboss.tools.jst.web/plugin.xml
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web/plugin.xml 2010-09-28 13:57:00 UTC (rev
25268)
+++ trunk/jst/plugins/org.jboss.tools.jst.web/plugin.xml 2010-09-28 13:58:27 UTC (rev
25269)
@@ -155,8 +155,6 @@
class="org.jboss.tools.jst.web.project.WebConfigImpl"/>
<xclass id="org.jboss.tools.jst.web.project.WebModuleImpl"
class="org.jboss.tools.jst.web.project.WebModuleImpl"/>
- <xclass
id="org.jboss.tools.jst.web.project.handlers.CreateTemplateFromPageHandler"
- class="org.jboss.tools.jst.web.project.handlers.CreateTemplateFromPageHandler"/>
<xclass
id="org.jboss.tools.jst.web.project.handlers.CreateTemplateFromProjectHandler"
class="org.jboss.tools.jst.web.project.handlers.CreateTemplateFromProjectHandler"/>
<xclass id="org.jboss.tools.jst.web.project.handlers.CreateWebPrjHandler"
@@ -265,8 +263,6 @@
class="org.jboss.tools.jst.web.project.handlers.AddJarToLibrarySetSupport"/>
<xclass
id="org.jboss.tools.jst.web.project.handlers.AddLibraryToVersionSupport"
class="org.jboss.tools.jst.web.project.handlers.AddLibraryToVersionSupport"/>
- <xclass
id="org.jboss.tools.jst.web.project.handlers.AddPageTemplateSupport"
- class="org.jboss.tools.jst.web.project.handlers.AddPageTemplateSupport"/>
<xclass id="org.jboss.tools.jst.web.project.handlers.AddVersionSupport"
class="org.jboss.tools.jst.web.project.handlers.AddVersionSupport"/>
<xclass
id="org.jboss.tools.jst.web.project.handlers.AddLibrarySetSupport"
Modified: trunk/jst/plugins/org.jboss.tools.jst.web/resources/meta/web-template.meta
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web/resources/meta/web-template.meta 2010-09-28
13:57:00 UTC (rev 25268)
+++ trunk/jst/plugins/org.jboss.tools.jst.web/resources/meta/web-template.meta 2010-09-28
13:58:27 UTC (rev 25269)
@@ -139,14 +139,6 @@
</XModelAttributes>
<XActionItem kind="list">
<XActionItem kind="list" name="CreateActions">
- <XActionItem HandlerClassName="%SpecialWizard%"
ICON="action.empty"
-
PROPERTIES="support=org.jboss.tools.jst.web.project.handlers.AddPageTemplateSupport"
- displayName="Add Page Template" kind="action"
name="CreatePageTemplate">
- <EntityData EntityName="PageTemplateJSF">
- <AttributeData AttributeName="name"/>
- <AttributeData AttributeName="page path"/>
- </EntityData>
- </XActionItem>
</XActionItem>
</XActionItem>
<XDependencies/>
@@ -179,17 +171,6 @@
</XModelAttributes>
<XActionItem kind="list">
<XActionItem kind="list" name="CreateActions">
- <XActionItem HandlerClassName="%SpecialWizard%"
ICON="action.empty"
-
PROPERTIES="support=org.jboss.tools.jst.web.project.handlers.AddPageTemplateSupport"
- displayName="Add Page Template" kind="action"
name="CreatePageTemplate">
- <EntityData EntityName="PageTemplateStruts">
- <AttributeData AttributeName="name"/>
- <AttributeData AttributeName="page path"/>
- </EntityData>
- <EntityData EntityName="ProjectTemplateVelocity">
- <AttributeData AttributeName="velocity templates"
Mandatory="no"/>
- </EntityData>
- </XActionItem>
</XActionItem>
</XActionItem>
<XDependencies/>
Modified: trunk/jst/plugins/org.jboss.tools.jst.web/resources/meta/web.meta
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web/resources/meta/web.meta 2010-09-28 13:57:00
UTC (rev 25268)
+++ trunk/jst/plugins/org.jboss.tools.jst.web/resources/meta/web.meta 2010-09-28 13:58:27
UTC (rev 25269)
@@ -1404,9 +1404,6 @@
<XChildrenEntities/>
<XActionItem kind="list">
<XActionItem kind="list" name="CreateActions">
- <XActionItem
-
HandlerClassName="org.jboss.tools.jst.web.project.handlers.CreateTemplateFromPageHandler"
- ICON="action.empty" displayName="Save as Template..."
kind="action" name="CreateTemplate"/>
</XActionItem>
</XActionItem>
</XEntityExtension>
@@ -1414,9 +1411,6 @@
<XChildrenEntities/>
<XActionItem kind="list">
<XActionItem kind="list" name="CreateActions">
- <XActionItem
-
HandlerClassName="org.jboss.tools.jst.web.project.handlers.CreateTemplateFromPageHandler"
- ICON="action.empty" displayName="Save as Template..."
kind="action" name="CreateTemplate"/>
</XActionItem>
</XActionItem>
</XEntityExtension>
@@ -1560,9 +1554,6 @@
<XChildrenEntities/>
<XActionItem kind="list">
<XActionItem kind="list" name="CreateActions">
- <XActionItem
-
HandlerClassName="org.jboss.tools.jst.web.project.handlers.CreateTemplateFromPageHandler"
- ICON="action.empty" displayName="Save as Template..."
kind="action" name="CreateTemplate"/>
</XActionItem>
</XActionItem>
</XEntityExtension>
Deleted:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/handlers/AddPageTemplateSupport.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/handlers/AddPageTemplateSupport.java 2010-09-28
13:57:00 UTC (rev 25268)
+++
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/handlers/AddPageTemplateSupport.java 2010-09-28
13:58:27 UTC (rev 25269)
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is 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:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.jst.web.project.handlers;
-
-import java.util.Map;
-import java.util.Properties;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.osgi.util.NLS;
-
-import org.jboss.tools.common.meta.action.XActionInvoker;
-import org.jboss.tools.common.meta.action.impl.DefaultWizardDataValidator;
-import org.jboss.tools.common.meta.action.impl.SpecialWizardSupport;
-import org.jboss.tools.common.meta.action.impl.WizardDataValidator;
-import org.jboss.tools.common.model.XModel;
-import org.jboss.tools.common.model.XModelException;
-import org.jboss.tools.common.model.XModelObject;
-import org.jboss.tools.common.model.options.PreferenceModelUtilities;
-import org.jboss.tools.common.model.plugin.ModelPlugin;
-import org.jboss.tools.common.model.util.EclipseResourceUtil;
-import org.jboss.tools.jst.web.WebModelPlugin;
-import org.jboss.tools.jst.web.messages.xpl.WebUIMessages;
-import org.jboss.tools.jst.web.project.helpers.AbstractWebProjectTemplate;
-
-public class AddPageTemplateSupport extends SpecialWizardSupport {
-
- public static String run(AbstractWebProjectTemplate template, String entity,
XModelObject selection) {
- XModel model = PreferenceModelUtilities.getPreferenceModel();
- String actionPath = "CreateActions.CreatePageTemplate"; //$NON-NLS-1$
- Properties p = new Properties();
- p.put("template", template); //$NON-NLS-1$
- if(selection != null) p.put("selection", selection); //$NON-NLS-1$
- XActionInvoker.invoke(entity, actionPath, model.getRoot(), p);
- return p.getProperty("name"); //$NON-NLS-1$
- }
-
- AbstractWebProjectTemplate template;
- Map pageTemplates;
-
- public void reset() {
- template = (AbstractWebProjectTemplate)getProperties().get("template");
//$NON-NLS-1$
- pageTemplates = template.getPageTemplates();
- initSelection();
- }
-
- private void initSelection() {
- XModelObject selection = (XModelObject)getProperties().get("selection");
//$NON-NLS-1$
- if(selection == null) return;
- IFile f = (IFile)EclipseResourceUtil.getResource(selection);
- if(f == null) return;
- String path = f.getFullPath().toString();
- setAttributeValue(0, "page path", path); //$NON-NLS-1$
- setAttributeValue(0, "name", selection.getAttributeValue("name"));
//$NON-NLS-1$ //$NON-NLS-2$
- }
-
- public void action(String name) throws XModelException {
- if(OK.equals(name) || FINISH.equals(name)) {
- execute();
- setFinished(true);
- } else if(CANCEL.equals(name)) {
- setFinished(true);
- }
- }
-
- protected void execute() throws XModelException {
- Properties p0 = extractStepData(0);
- String name = p0.getProperty("name"); //$NON-NLS-1$
- String path = p0.getProperty("page path"); //$NON-NLS-1$
- IFile r = getSelectedResource(path);
- if(r != null) template.addPageTemplate(getFinalTemplateName(r, name), r);
- getProperties().setProperty("name", name); //$NON-NLS-1$
- }
-
- protected DefaultWizardDataValidator validator = new PageTemplateValidator();
-
- public WizardDataValidator getValidator(int step) {
- validator.setSupport(this, step);
- return validator;
- }
-
- class PageTemplateValidator extends DefaultWizardDataValidator {
- public void validate(Properties data) {
- message = null;
- super.validate(data);
- if(message != null) return;
- String name = data.getProperty("name"); //$NON-NLS-1$
- if(pageTemplates.containsKey(name)) {
- message = NLS.bind(WebUIMessages.TEMPLATE_PAGE_ALREADY_EXISTS, name);
- return;
- }
- IFile r = getSelectedResource(data.getProperty("page path"));
//$NON-NLS-1$
- if(r == null || !r.exists()) {
- message = WebUIMessages.PAGE_PATH_ISNOT_CORRECT;
- return;
- }
- String n = getFinalTemplateName(r, name);
- if(!name.equals(n) && pageTemplates.containsKey(n)) {
- message = NLS.bind(WebUIMessages.TEMPLATE_PAGE_ALREADY_EXISTS, n);
- return;
- }
- }
- }
-
- String getFinalTemplateName(IFile f, String name) {
- String n = f.getName();
- if(n.indexOf(".jsp") >= 0) return name; //$NON-NLS-1$
- int q = n.lastIndexOf('.');
- if(q < 0) return name;
- String ext = n.substring(q);
- if(name.endsWith(ext)) return name;
- return name + ext;
- }
-
- IFile selectedFile;
- String pagePath;
-
- IFile getSelectedResource(String pagePath) {
- if(pagePath == null) return null;
- if(pagePath.equals(this.pagePath)) return selectedFile;
- this.pagePath = pagePath;
- IResource r = ModelPlugin.getWorkspace().getRoot().findMember(new Path(pagePath));
- if(r instanceof IFile) {
- selectedFile = (IFile)r;
- } else {
- selectedFile = null;
- }
- return selectedFile;
- }
-
-}
Deleted:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/handlers/CreateTemplateFromPageHandler.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/handlers/CreateTemplateFromPageHandler.java 2010-09-28
13:57:00 UTC (rev 25268)
+++
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/handlers/CreateTemplateFromPageHandler.java 2010-09-28
13:58:27 UTC (rev 25269)
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is 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:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.jst.web.project.handlers;
-
-import java.util.Properties;
-
-import org.jboss.tools.common.meta.action.impl.AbstractHandler;
-import org.jboss.tools.common.model.XModelException;
-import org.jboss.tools.common.model.XModelObject;
-import org.jboss.tools.common.model.util.EclipseResourceUtil;
-import org.jboss.tools.jst.web.project.helpers.AbstractWebProjectTemplate;
-import org.jboss.tools.jst.web.project.helpers.WebProjectTemplateFactory;
-
-public class CreateTemplateFromPageHandler extends AbstractHandler {
-
- public boolean isEnabled(XModelObject object) {
- if(object == null) return false;
- return EclipseResourceUtil.getModelNature(EclipseResourceUtil.getProject(object))
!= null;
- }
-
- public void executeHandler(XModelObject object, Properties p) throws XModelException
{
- AbstractWebProjectTemplate template =
WebProjectTemplateFactory.getTemplate(object);
- if(template != null) {
- template.addPageTemplate(object);
- }
- }
-
-}
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/helpers/AbstractWebProjectTemplate.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/helpers/AbstractWebProjectTemplate.java 2010-09-28
13:57:00 UTC (rev 25268)
+++
trunk/jst/plugins/org.jboss.tools.jst.web/src/org/jboss/tools/jst/web/project/helpers/AbstractWebProjectTemplate.java 2010-09-28
13:58:27 UTC (rev 25269)
@@ -13,26 +13,21 @@
import java.io.*;
import java.util.*;
-import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.osgi.util.NLS;
import org.jboss.tools.common.model.ServiceDialog;
-import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.options.PreferenceModelUtilities;
import org.jboss.tools.common.util.FileUtil;
import org.jboss.tools.jst.web.WebModelPlugin;
import org.jboss.tools.jst.web.messages.xpl.WebUIMessages;
-import org.jboss.tools.jst.web.project.handlers.AddPageTemplateSupport;
import org.jboss.tools.jst.web.project.handlers.AddProjectTemplateSupport;
import org.jboss.tools.jst.web.project.handlers.EditProjectTemplateSupport;
import org.jboss.tools.jst.web.project.version.*;
public abstract class AbstractWebProjectTemplate implements IWebProjectTemplate {
- Map<String,File> pages = new TreeMap<String,File>();
public AbstractWebProjectTemplate() {
- updatePageTemplates();
}
protected abstract String getNatureDir();
@@ -89,34 +84,6 @@
return getTemplatesBase() + "/pages"; //$NON-NLS-1$
}
- public void updatePageTemplates() {
- pages.clear();
- File templateDir = new File(getPageTemplatesLocation());
- if (!templateDir.isDirectory()) return;
- getTemplates(templateDir, pages);
- getTemplates(templateDir, getNatureDir(), pages);
- }
-
- public Map<String,File> getPageTemplates() {
- return pages;
- }
-
- public String[] getPageTemplateList() {
- return pages.keySet().toArray(new String[0]);
- }
-
- private void getTemplates(File parent, String name, Map<String,File> templates) {
- File dir = new File(parent, name);
- if(dir.isDirectory()) getTemplates(dir, templates);
- }
-
- private void getTemplates(File dir, Map<String,File> templates) {
- File[] files = dir.listFiles();
- if(files == null) return;
- for (int i = 0; i < files.length; i++)
- if(files[i].isFile()) templates.put(files[i].getName(), files[i]);
- }
-
public String[] getVersionList() {
return getProjectVersions().getVersionList();
}
@@ -164,37 +131,6 @@
protected abstract String getWizardEntitySuffix();
- public String addPageTemplate(XModelObject selection) {
- return AddPageTemplateSupport.run(this, "PageTemplate" +
getWizardEntitySuffix(), selection); //$NON-NLS-1$
- }
-
- public String addPageTemplate() {
- return addPageTemplate(null);
- }
-
- public void addPageTemplate(String name, IFile resource) {
- File dir = new File(getPageTemplatesLocation());
- dir = new File(dir, getNatureDir());
- File target = new File(dir, name);
- File source = resource.getLocation().toFile();
- FileUtil.copyFile(source, target, true, true);
- updatePageTemplates();
- }
-
- public void removePageTemplate(String name) {
- File dir = new File(getPageTemplatesLocation());
- File target = new File(dir, name);
- if(!target.isFile()) {
- dir = new File(dir, getNatureDir());
- }
- target = new File(dir, name);
- if(target.isFile()) {
- if(!confirm(NLS.bind(WebUIMessages.YOU_WANT_TO_DELETE_PAGE_TEMPLATE,name))) return;
- target.delete();
- updatePageTemplates();
- }
- }
-
public String addProjectTemplate(String version) {
return AddProjectTemplateSupport.run(this, "ProjectTemplate" +
getWizardEntitySuffix(), version); //$NON-NLS-1$
}