webpumpproject.java
来自「一个eclipse插件源代码。用于web开发」· Java 代码 · 共 757 行 · 第 1/2 页
JAVA
757 行
/**
* get the project's root direct
* @return IFolder
*/
public IFolder getRootDirFolder() {
if (rootDirFolder == null) {
this.initRootDirFolder(false);
}
return rootDirFolder;
}
/**
* init Root direct
* @param create boolean
* @return IFolder
*/
private IFolder initRootDirFolder(boolean create) {
StringTokenizer tokenizer = new StringTokenizer(this.getRootDir(), "/\\:");
IFolder folder = null;
try {
while (tokenizer.hasMoreTokens()) {
String each = tokenizer.nextToken();
if (folder == null) {
folder = project.getFolder(each);
} else {
folder = folder.getFolder(each);
}
if (create) {
this.createFolder(folder);
}
}
} catch (CoreException ex) {
WebpumpIDEPlugin.log(ex);
folder = null;
setRootDir("/");
}
this.rootDirFolder = folder;
return folder;
}
/**
* create a new folder
* @param folderHandle
* @throws CoreException
*/
private void createFolder(IFolder folderHandle) throws CoreException {
try {
// Create the folder resource in the workspace
folderHandle.create(false, true, null); //new SubProgressMonitor(monitor, 500));
}
catch (CoreException e) {
// If the folder already existed locally, just refresh to get contents
if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED)
folderHandle.refreshLocal(IResource.DEPTH_INFINITE, null); //new SubProgressMonitor(monitor, 500));
else
throw e;
}
}
/**
* write new project file to plugin's xsl direct
* @return boolean
* @throws CoreException
*/
private boolean writeProjectFile() throws CoreException{
StringBuffer strBuffer = new StringBuffer();
//取工程基本信息
String[] strProjectInfo = m_objWebpumpNewWizardPage.getProjectInfo();
strBuffer.append("<?xml version=\"1.0\" encoding=\""+WebpumpIDEPlugin.filterXML(strProjectInfo[1])+"\"?>\n");
strBuffer.append("<project name=\"");
strBuffer.append(WebpumpIDEPlugin.filterXML(this.getProject().getName()));
//取系统的资源属性
ResourceBundle bundle = WebpumpIDEPlugin.getDefault().getResourceBundle();
String strLanguage = bundle.getLocale().getLanguage();
strBuffer.append("\" language = \"");
strBuffer.append(strLanguage);
strBuffer.append("\">\n\n");
//取工程基本信息
String[] strProjectInfo = m_objWebpumpNewWizardPage.getProjectInfo();
strBuffer.append("\t<version>");
strBuffer.append(WebpumpIDEPlugin.filterXML(strProjectInfo[0]));
strBuffer.append("</version>\n");
strBuffer.append("\t<path>");
strBuffer.append(WebpumpIDEPlugin.filterXML(this.getProject().getLocation().toString()));
strBuffer.append("</path>\n");
strBuffer.append("\t<charset>");
strBuffer.append(WebpumpIDEPlugin.filterXML(strProjectInfo[1]));
strBuffer.append("</charset>\n");
strBuffer.append("\t<description>");
strBuffer.append(WebpumpIDEPlugin.filterXML(strProjectInfo[3]));
strBuffer.append("</description>\n\n");
Vector vModuleInfo = m_objWebpumpNewWizardPage.getModuleInfo();
String[] strDefaultModuleInfo = (String[])vModuleInfo.elementAt(0);
//取模块配置信息
strBuffer.append("\t<module-list default=\""+strDefaultModuleInfo[1]+"\">\n");
for (int i = 0;i<vModuleInfo.size();i++)
{
String[] strModuleInfo = (String[])vModuleInfo.elementAt(i);
strBuffer.append("\t\t<module");
strBuffer.append(" name=\"");
strBuffer.append(WebpumpIDEPlugin.filterXML(strModuleInfo[0]));
strBuffer.append("\"");
strBuffer.append(" path=\"");
strBuffer.append(WebpumpIDEPlugin.filterXML(strModuleInfo[1]));
strBuffer.append("\"");
strBuffer.append(" description=\"");
strBuffer.append(WebpumpIDEPlugin.filterXML(strModuleInfo[2]));
strBuffer.append("\">\n");
strBuffer.append("\t\t\t<config-extends><![CDATA[\n");
strBuffer.append(getModuleConfigExtends(strModuleInfo[1],strDefaultModuleInfo[1]));
strBuffer.append("\t\t\t\t]]>\n");
strBuffer.append("\t\t\t</config-extends>\n");
strBuffer.append("</module>\n");
}
strBuffer.append("\t</module-list>\n\n");
//取站点配置信息
strBuffer.append("\t<site-config path=\"");
strBuffer.append(WebpumpIDEPlugin.filterXML(m_objWebpumpNewWizardPage.getSitePath()));
strBuffer.append("\" ");
strBuffer.append("debug=\"");
if (m_objWebpumpNewWizardPage.getCompileToSite())
strBuffer.append("on");
else
strBuffer.append("off");
strBuffer.append("\">");
Vector vSiteInfo = m_objWebpumpNewWizardPage.getSiteInfo();
for (int i = 0;i<vSiteInfo.size();i++)
{
String[] strSiteInfo = (String[])vSiteInfo.elementAt(i);
strBuffer.append("\t\t<upload");
strBuffer.append(" name=\"");
strBuffer.append(WebpumpIDEPlugin.filterXML(strSiteInfo[0]));
strBuffer.append("\"");
strBuffer.append(" source=\"");
strBuffer.append(WebpumpIDEPlugin.filterXML(strSiteInfo[1]));
strBuffer.append("\"");
strBuffer.append(" target=\"");
strBuffer.append(WebpumpIDEPlugin.filterXML(strSiteInfo[2]));
strBuffer.append("\"/>\n");
}
strBuffer.append("\t</site-config>\n\n");
strBuffer.append("\t<extends-config>\n");
strBuffer.append("\t</extends-config>\n");
strBuffer.append("</project>\n");
try
{
String strContent = strBuffer.toString();
//取插?路径下XSL文?夹
URL prefix = new URL(WebpumpIDEPlugin.getDefault().getDescriptor().getInstallURL(), "xsl/");
//构建工程配置文件
File projectFile = new File(this.getProject().getLocation().toString()+"/project.webpump");
if (!projectFile.getParentFile().exists() )
{
projectFile.getParentFile().mkdirs();
}
//取插件路径下XSL文?夹
URL xslpath = new URL(prefix,"project_"+strLanguage+".xsl");
File projectXSLFile = new File(Platform.asLocalURL(xslpath).getFile());
if (!projectXSLFile.exists())
{
xslpath = new URL(prefix, "project.xsl");
}
FileOutputStream objFileOutputStream = new FileOutputStream(projectFile);
objFileOutputStream.write(strContent.getBytes(WebpumpIDEPlugin.filterXML(strProjectInfo[1])));
objFileOutputStream.close();
//FileUtil.toTextFile(projectFile,strContent);
//创建工程文?结构
CreateFileByXSL.createFileByXSLT(this.getProject().getLocation().toString()+"/project.webpump",Platform.asLocalURL(xslpath).getFile());
//删?临时文?*.000
Path objPath = new Path(this.getProject().getLocation().toString());
File objFile = objPath.toFile();
FileUtil.removeFile(objFile,".000");
File targetFile = new File(this.getProject().getLocation().append("project-config")+"\\");
try
{
//取插?路径下lib文?夹
URL sourceprefix = new URL(WebpumpIDEPlugin.getDefault().getDescriptor().getInstallURL(), "xsl/");
sourceprefix = new URL(sourceprefix,"copy");
//复制所有的配置文?
File sourceFile = new File(Platform.asLocalURL(sourceprefix).getFile());
FileUtil.copyDir(sourceFile,targetFile);
//复制application Resources文?
URL resourceURL = new URL(WebpumpIDEPlugin.getDefault().getDescriptor().getInstallURL(), "resources/");
URL resourceFileURl = new URL(resourceURL, "ApplicationResources_"+strLanguage+".properties");
File sFile = null;
sourceFile = new File(Platform.asLocalURL(resourceFileURl).getFile());
if (sourceFile.exists())
{
sFile = sourceFile;
}
else
{
resourceFileURl = new URL(resourceURL, "ApplicationResources.properties");
sFile = new File(Platform.asLocalURL(resourceFileURl).getFile());
}
if (sFile!=null&&sFile.exists())
{
for (int i = 0;i<vModuleInfo.size();i++ )
{
String[] strModuleInfo = (String[])vModuleInfo.elementAt(i);
targetFile = new File(this.getProject().getLocation().append("module")+"/"+strModuleInfo[1]+"/config/ApplicationResources.properties");
FileUtil.copyFile(sourceFile,targetFile);
}
}
}
catch(Exception e)
{
WebpumpIDEPlugin.log(e);
}
}
catch(Exception e)
{
WebpumpIDEPlugin.log(e);
}
return true;
}
/**
* @see org.eclipse.core.resources.IProjectNature#configure()
*/
public void configure() throws CoreException {
}
/**
* @see org.eclipse.core.resources.IProjectNature#deconfigure()
*/
public void deconfigure() throws CoreException {
}
public static String getModuleConfigExtends(String strModuleName,String strDefaultModule)
{
StringBuffer strInfo = new StringBuffer();
strInfo.append(" <!-- ========== Controller Configuration ================================ -->\n");
strInfo.append(" <controller>\n");
strInfo.append(" <set-property property=\"inputForward\" value=\"false\"/>\n");
strInfo.append(" </controller>\n\n");
strInfo.append(" <!-- ========== Message Resources Definitions =========================== -->\n");
strInfo.append(" <message-resources parameter=\"properties."+strModuleName+".ApplicationResources\"/>\n\n");
strInfo.append(" <!-- ========== Plug Ins Configuration ================================== -->\n");
strInfo.append(" <plug-in className=\"org.apache.struts.plugins.ModuleConfigVerifier\"/>\n\n");
strInfo.append(" <plug-in className=\"org.apache.struts.validator.ValidatorPlugIn\">\n");
if (strModuleName.equals(strDefaultModule))
strInfo.append(" <set-property property=\"pathnames\" value=\"/WEB-INF/config/validationrule.xml,/WEB-INF/config/validation.xml\"/>\n");
else
strInfo.append(" <set-property property=\"pathnames\" value=\"/WEB-INF/config/validationrule.xml,/WEB-INF/config/"+strModuleName+"/validation.xml\"/>\n");
strInfo.append(" </plug-in>\n\n");
if (strModuleName.equals(strDefaultModule))
{
strInfo.append(" <plug-in className=\"com.webpump.sdk.plugin.DataSourceManagerPlugIn\">\n\n");
strInfo.append(" <set-property property=\"datasourcekeys\" value=\"\"/>\n");
strInfo.append(" </plug-in>\n");
strInfo.append(" <plug-in className=\"com.webpump.sdk.plugin.ExternalSQLPlugIn\">\n");
strInfo.append(" <set-property property=\"pathnames\" value=\"properties.ExternalSQL\"/>\n");
strInfo.append(" <set-property property=\"dbFilter\" value=\"com.webpump.sdk.sql.DefaultDBFilters\"/>\n");
strInfo.append(" </plug-in> \n\n");
strInfo.append(" <plug-in className=\"com.webpump.sdk.session.SessionPlugIn\">\n");
strInfo.append(" <set-property property=\"sessionTimeOut\" value=\"30\"/>\n");
strInfo.append(" <set-property property=\"batchTime\" value=\"0\"/>\n");
strInfo.append(" <set-property property=\"dataSource\" value=\"\"/>\n");
strInfo.append(" <set-property property=\"sessionBean\" value=\"javax.servlet.http.HttpSession\"/>\n");
strInfo.append(" <set-property property=\"sessionManagerBean\" value=\"com.webpump.sdk.session.HttpSessionManager\"/>\n");
strInfo.append(" <set-property property=\"dataAccessBean\" value=\"com.webpump.sdk.session.WPDefaultDataAccess\"/>\n");
strInfo.append(" </plug-in>\n");
}
strInfo.append(" <plug-in className=\"com.webpump.sdk.plugin.FilterPlugIn\">\n");
strInfo.append(" <set-property property=\"fileFilter\" value=\"com.webpump.sdk.plugin.filter.DefaultFileFilters\"/>\n");
strInfo.append(" <set-property property=\"requestFilter\" value=\"com.webpump.sdk.plugin.filter.DefaultRequestFilters\"/>\n");
strInfo.append(" </plug-in>\n\n");
strInfo.append(" <plug-in className=\"com.webpump.sdk.plugin.PageAttributesPlugIn\">\n");
if (strModuleName.equals(strDefaultModule))
strInfo.append(" <set-property property=\"pageAttributeFile\" value=\"/WEB-INF/config/webpumpextendconfig.xml\"/>\n");
else
strInfo.append(" <set-property property=\"pageAttributeFile\" value=\"/WEB-INF/config/"+strModuleName+"/"+strModuleName+"webpumpextendconfig.xml\"/>\n");
strInfo.append(" </plug-in>\n\n");
strInfo.append(" <plug-in className=\"com.webpump.sdk.plugin.InitParamPlugIn\">\n");
strInfo.append(" <set-property property=\"connectDB\" value=\"ON\"/>\n");
strInfo.append(" <set-property property=\"dumpFlag\" value=\"ON\"/>\n");
strInfo.append(" <set-property property=\"uploadDir\" value=\"c:/temp/upload\"/>\n");
strInfo.append(" <set-property property=\"downloadDir\" value=\"c:/temp/download\"/>\n");
strInfo.append(" </plug-in>\n\n");
strInfo.append(" <plug-in className=\"com.webpump.sdk.plugin.SecurityBeanPlugIn\">\n");
strInfo.append(" <set-property property=\"securitybeanfactory\" value=\"com.webpump.sdk.plugin.security.DefaultSecurityBeanFactory\"/>\n");
strInfo.append(" <set-property property=\"securitybean\" value=\"com.webpump.sdk.plugin.security.DefaultSecurityBean\"/>\n");
strInfo.append(" </plug-in>\n\n");
return strInfo.toString();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?