You are viewing a plain text version of this content. The canonical link for it is here.
Posted to imperius-commits@incubator.apache.org by jn...@apache.org on 2008/01/15 06:53:02 UTC

svn commit: r612031 [5/6] - in /incubator/imperius/trunk: ./ imperius-javasplextension/ imperius-javasplextension/META-INF/ imperius-javasplextension/src/ imperius-javasplextension/src/org/ imperius-javasplextension/src/org/apache/ imperius-javasplexte...

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorPageWizard.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorPageWizard.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorPageWizard.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorPageWizard.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,300 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+package org.apache.imperius.spl.editor.tool.ui.wizard;
+
+import org.apache.imperius.spl.editor.tool.internal.messages.PolicyMessages;
+import org.apache.imperius.spl.editor.tool.utils.EclipseFileUtil;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragment;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.ContainerSelectionDialog;
+
+
+public class NewPolicyEditorPageWizard extends WizardPage {
+
+	private ISelection cSelection;
+	
+	private String defaultFileName;
+	
+	private Text containerText;
+	
+	private Text fileText;
+	
+	private static final String SPL_FILE_EXTENSION = "spl";
+
+	/**
+	 * 
+	 * @param wizard
+	 * @param selection
+	 */
+	public NewPolicyEditorPageWizard(NewPolicyEditorWizard wizard, ISelection selection) {
+		super("wizardPage");
+		setTitle(PolicyMessages.getString("SPL_EDITOR_PAGE_WINDOW_TITLE"));
+		setDescription(PolicyMessages.getString("SPL_WIZARD_PAGE_DESC"));
+		this.cSelection = selection;
+		this.defaultFileName = "new_file";
+	}
+
+	/**
+	 * 
+	 * @param title
+	 * @param selection
+	 */
+	public NewPolicyEditorPageWizard(String title, ISelection selection) {
+		super(title);
+		setTitle(PolicyMessages.getString("SPL_EDITOR_PAGE_WINDOW_TITLE"));
+		setDescription(PolicyMessages.getString("SPL_WIZARD_PAGE_DESC"));
+		this.defaultFileName = "new_file";
+		this.cSelection = selection;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createControl(Composite parent) {
+		Composite container = new Composite(parent, SWT.NULL);
+		GridLayout layout = new GridLayout();
+		container.setLayout(layout);
+		layout.numColumns = 3;
+		layout.verticalSpacing = 9;
+
+		Label label = new Label(container, SWT.NULL);
+		label.setText(PolicyMessages.getString("SPL_FILE_LABEL_NAME"));
+		fileText = new Text(container, SWT.BORDER | SWT.SINGLE);
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		fileText.setLayoutData(gd);
+		fileText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				dialogChanged();
+			}
+		});
+		label = new Label(container, SWT.NULL); // dummy label
+		label = new Label(container, SWT.NULL);
+		label.setText(PolicyMessages.getString("SPL_PROJECT"));
+		containerText = new Text(container, SWT.BORDER | SWT.SINGLE);
+		gd = new GridData(GridData.FILL_HORIZONTAL);
+		containerText.setLayoutData(gd);
+		containerText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				dialogChanged();
+			}
+		});
+
+		Button button = new Button(container, SWT.PUSH);
+		button.setText(PolicyMessages.getString("SPL_BROWSE"));
+		button.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				handleBrowse();
+			}
+		});
+		initialize();
+		dialogChanged();
+		setControl(container);
+	}
+
+	/**
+	 * 
+	 */
+	public void dialogChanged() {
+		String container = getContainerName();
+		String filename = getTargetFileName();
+		
+		if (container.length() == 0) {
+			updateStatus(PolicyMessages.getString("SPL_PROJECT_MUST_BE_SPECIFIED"));
+			return;
+		}
+		
+		if (filename.length() == 0) {
+			updateStatus(PolicyMessages.getString("SPL_FILE_NAME_CANNOT_BE_BLANK"));
+			return;
+		}
+
+		try {
+			if(filename.endsWith(".spl")) {
+				// get the path
+				String splFilePath = null;
+				if (!container.endsWith("/")) {
+					splFilePath = container + "/" + filename;
+				} else {
+					splFilePath = container + filename;
+				}
+				IFile file = EclipseFileUtil.getIFile(splFilePath);
+				if(file.exists()) {
+					updateStatus(PolicyMessages.getString("SPL_FILE_ALREADY_EXISTS"));
+					return;
+				}
+			} else {
+				updateStatus(PolicyMessages.getString("SPL_FILE_EXTENSION_MUST_BE_SPECIFIED"));
+				return;
+			}
+		} catch (CoreException e) {
+			e.printStackTrace();
+		}
+		setErrorMessage(null);
+		setPageComplete(true);
+	}	
+
+	/**
+	 * 
+	 */
+	public void initialize() {
+		setContainerText(getSelectedIResourceName());
+		
+		if("".equals(getContainerName())) {
+			setFileNameText("");
+			return;
+		}
+		
+		// check if any file exists with the default file name
+		setFileNameText(getDefaultFileName());
+	}
+	
+	/**
+	 * 
+	 * @return
+	 */
+	private String getDefaultFileName() {
+		try {
+			defaultFileName = defaultFileName+"_"+(int)(Math.random()*10)+ "." + SPL_FILE_EXTENSION;
+			String container = getContainerName();
+			String splFilePath = null;
+			if (!container.endsWith("/")) {
+				splFilePath = container + "/" + defaultFileName;
+			} else {
+				splFilePath = container + defaultFileName;
+			}
+			IFile file = EclipseFileUtil.getIFile(splFilePath);
+			if(file.exists()) {
+				getDefaultFileName();
+			}
+		} catch(Exception e) {
+			e.printStackTrace();
+		}
+		return defaultFileName;
+	}	
+
+	/**
+	 * 
+	 * @param filename
+	 */
+	private void setFileNameText(String filename) {
+		fileText.setText(filename);
+	}
+
+
+	/**
+	 * Uses the standard container selection dialog to choose the new value for
+	 * the container field.
+	 */
+	private void handleBrowse() {
+		ContainerSelectionDialog dialog = new ContainerSelectionDialog(
+				getShell(), ResourcesPlugin.getWorkspace().getRoot(), false,
+				PolicyMessages.getString("SPL_SELECT_NEW_FILE_CONTAINER"));
+		if (dialog.open() == ContainerSelectionDialog.OK) {
+			Object[] result = dialog.getResult();
+			if (result.length == 1) {
+				setContainerText(((Path) result[0]).toOSString());
+			}
+		}
+	}
+
+	/**
+	 * this function returns the container specified for CIM SPL file
+	 */
+	public String getContainerName() {
+		return containerText.getText();
+	}
+
+	/**
+	 * 
+	 * @param text
+	 */
+	public void setContainerText(String text) {
+		containerText.setText(text);
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	private String getSelectedIResourceName() {
+		String selectedPath = "";
+		if (cSelection != null && cSelection.isEmpty() == false
+				&& cSelection instanceof IStructuredSelection) {
+			IStructuredSelection structuredSel = (IStructuredSelection) cSelection;
+			Object obj = structuredSel.getFirstElement();
+			if (obj instanceof IResource) {
+				IContainer container;
+				if (obj instanceof IContainer)
+					container = (IContainer) obj;
+				else
+					container = ((IResource) obj).getParent();
+				selectedPath = container.getFullPath().toOSString();
+			} else if(obj instanceof IJavaProject) {
+				IJavaProject javaProject = (IJavaProject)obj;
+				selectedPath = javaProject.getPath().toOSString();
+			} else if(obj instanceof IPackageFragment) {
+				IPackageFragment pkgFrag = (IPackageFragment)obj;
+				selectedPath = pkgFrag.getPath().toOSString();
+			}
+		}
+		return selectedPath;
+	}
+
+	/**
+	 * Returns the file name for CIM SPL.
+	 */
+	public String getTargetFileName() {
+		return fileText.getText();
+	}
+
+	/**
+	 * 
+	 * @param message
+	 */
+	private void updateStatus(String message) {
+		setErrorMessage(message);
+		setPageComplete(false);
+	}
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorPageWizard.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorWizard.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorWizard.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorWizard.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorWizard.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,179 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+package org.apache.imperius.spl.editor.tool.ui.wizard;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+
+import org.apache.imperius.spl.editor.tool.internal.messages.PolicyMessages;
+import org.apache.imperius.spl.editor.tool.ui.PolicyEditor;
+import org.apache.imperius.spl.editor.tool.utils.PolicyPluginLogUtil;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+
+
+public class NewPolicyEditorWizard extends Wizard implements INewWizard {
+
+	private NewPolicyEditorPageWizard cWizardPage;
+	
+	private PolicyTemplatePage policyTemplatePage;
+	
+	private ISelection cSelection;
+	
+//	private IWorkbench cWorkbench;
+	
+	private IFile splPolicyFile;
+
+	/**
+	 * creates new object of this class
+	 */
+	public NewPolicyEditorWizard() {
+		super();
+		setNeedsProgressMonitor(true);
+	}
+
+	/**
+	 * 
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		cSelection = selection;
+//		cWorkbench = workbench;
+		setWindowTitle(PolicyMessages.getString("SPL_EDITOR_PAGE_WINDOW_TITLE"));
+	}
+
+	/**
+	 * add the pages to the wizard
+	 */
+	public void addPages() {
+		cWizardPage = new NewPolicyEditorPageWizard(this, cSelection);
+		addPage(cWizardPage);
+		
+		policyTemplatePage = new PolicyTemplatePage(this, cSelection);
+		addPage(policyTemplatePage);
+	}
+
+	/**
+	 * 
+	 */
+	public boolean performFinish() {
+		String containerName = cWizardPage.getContainerName();
+		String targetCimSplFileName = cWizardPage.getTargetFileName();
+		
+		String content = policyTemplatePage.getSelectedTemplate();
+
+		// get the path
+		String splFilePath = null;
+		//System.out.println("containerName"+containerName);
+		if (!containerName.endsWith("/")) {
+			splFilePath = containerName + "/" + targetCimSplFileName;
+		} else {
+			splFilePath = containerName + targetCimSplFileName;
+		}
+		
+		final NewPolicyFileCreationConfigData data = new NewPolicyFileCreationConfigData();
+		data.addParameter(NewPolicyFileCreationConfigData.SPL_CONTAINER_NAME_KEY,containerName);
+		data.addParameter(NewPolicyFileCreationConfigData.SPL_FILE_NAME_KEY,targetCimSplFileName);
+		data.addParameter(NewPolicyFileCreationConfigData.SPL_FILE_PATH_KEY,splFilePath);
+		data.addParameter(NewPolicyFileCreationConfigData.SPL_FILE_CONTENT,content);
+		
+
+		IRunnableWithProgress op = new IRunnableWithProgress() {
+			public void run(IProgressMonitor monitor)
+			throws InvocationTargetException {
+				try {
+					doFinish(data, monitor);
+				} catch (CoreException e) {
+					PolicyPluginLogUtil.logError(PolicyMessages.getString("SPL_FILE_CREATION_ERROR_") + " ", e);
+				} catch (IOException e) {
+					PolicyPluginLogUtil.logError(PolicyMessages.getString("SPL_FILE_CREATION_ERROR_") + " ", e);
+				} catch (InterruptedException e) {
+					e.printStackTrace();
+				} finally {
+					monitor.done();
+				}
+			}
+		};
+
+		try {
+			getContainer().run(true, false, op);
+		} catch (InterruptedException e) {
+			PolicyPluginLogUtil.logError(PolicyMessages.getString("SPL_FILE_CREATION_ERROR_") + " ", e);
+			return false;
+		} catch (InvocationTargetException e) {
+			Throwable realException = e.getTargetException();
+			MessageDialog.openError(getShell(), "Error", realException.getMessage());
+			return false;
+		}
+		return true;
+	}
+
+	/**
+	 * 
+	 * @param data
+	 * @param monitor
+	 * @throws CoreException
+	 * @throws IOException
+	 * @throws InvocationTargetException
+	 * @throws InterruptedException
+	 */
+	private void doFinish(NewPolicyFileCreationConfigData data, IProgressMonitor monitor) throws CoreException, IOException,
+			InvocationTargetException, InterruptedException {
+		
+		NewPolicyFileCreationAction newCimSplCreationAction = new NewPolicyFileCreationAction(data);
+		splPolicyFile = newCimSplCreationAction.run(monitor);
+		openFile(monitor);
+	}
+
+	/**
+	 * 
+	 * @param monitor
+	 */
+	private void openFile(IProgressMonitor monitor) {
+		monitor.beginTask(PolicyMessages.getString("OPENING_SPL_EDITOR"), IProgressMonitor.UNKNOWN);
+		getShell().getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				IWorkbenchPage pg = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+				try {
+					IDE.openEditor(pg, splPolicyFile, PolicyEditor.EDITOR_ID);
+				} catch (PartInitException e) {
+					PolicyPluginLogUtil.logError(PolicyMessages.getString("FAILED_TO_OPEN_FILE_ERROR_") + " ", e);
+				}
+			}
+		});
+	}
+
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyEditorWizard.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationAction.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationAction.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationAction.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationAction.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+package org.apache.imperius.spl.editor.tool.ui.wizard;
+
+import java.io.ByteArrayInputStream;
+
+import org.apache.imperius.spl.editor.tool.internal.messages.PolicyMessages;
+import org.apache.imperius.spl.editor.tool.utils.EclipseFileUtil;
+import org.apache.imperius.spl.editor.tool.utils.PolicyPluginLogUtil;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+
+
+public class NewPolicyFileCreationAction {
+	
+	private NewPolicyFileCreationConfigData configData;
+	private IFile splPolicyFile;
+
+	/**
+	 * 
+	 * @param data
+	 */
+	public NewPolicyFileCreationAction(NewPolicyFileCreationConfigData data) {
+		configData = data;
+	}
+
+	/**
+	 * 
+	 * @param monitor
+	 * @return
+	 * @throws CoreException
+	 */
+	public IFile run(IProgressMonitor monitor) throws CoreException {
+		doFinishCimSplFile(monitor);
+		refreshContainer(monitor);
+		return splPolicyFile;
+	}
+
+	/**
+	 * 
+	 * @param monitor
+	 * @throws CoreException
+	 */
+	private void doFinishCimSplFile(IProgressMonitor monitor) throws CoreException {
+		String splFilePath = (String) configData.getParameter(NewPolicyFileCreationConfigData.SPL_FILE_PATH_KEY);
+		String fileContent = (String) configData.getParameter(NewPolicyFileCreationConfigData.SPL_FILE_CONTENT);
+		splPolicyFile = EclipseFileUtil.getIFile(splFilePath);
+		if(splPolicyFile.exists()) {
+			// do nothing
+		} else {
+			monitor.beginTask(PolicyMessages.getString("SPL_FILE_CREATION"), IProgressMonitor.UNKNOWN);
+			createSPLFile(splPolicyFile, fileContent, monitor);
+			splPolicyFile.refreshLocal(IResource.DEPTH_ZERO, monitor);
+		}
+	}
+
+	/**
+	 * 
+	 * @param splsplFile
+	 * @param monitor
+	 */
+	private void createSPLFile(IFile cimsplFile, String fileContent, IProgressMonitor monitor) {
+		String contents = fileContent;
+		try {
+			ByteArrayInputStream baInputStream = new ByteArrayInputStream(contents.getBytes());
+			if(cimsplFile.exists()) {
+				cimsplFile.delete(true, null);
+			}
+			cimsplFile.create(baInputStream, true, null);
+		} catch (CoreException ce) {
+			PolicyPluginLogUtil.logError(PolicyMessages.getString("SPL_FILE_CREATION_ERROR_") + " ", ce);
+		}
+	}
+
+	/**
+	 * 
+	 * @param monitor
+	 * @throws CoreException
+	 */
+	private void refreshContainer(IProgressMonitor monitor) throws CoreException {
+		String containerName = (String) configData.getParameter(NewPolicyFileCreationConfigData.SPL_CONTAINER_NAME_KEY);
+		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+		IResource resource = root.findMember(new Path(containerName));
+		if (!resource.exists() || !(resource instanceof IContainer)) {
+			throwCoreException(PolicyMessages.bind(PolicyMessages.getString("CONTAINER_DOES_NOT_EXISTS_ERROR_"), containerName));
+		}
+		IContainer container = (IContainer) resource;
+		container.refreshLocal(IResource.DEPTH_ONE, monitor);
+	}
+
+	/**
+	 * 
+	 * @param message
+	 * @throws CoreException
+	 */
+	private void throwCoreException(String message) throws CoreException {
+		IStatus status = new Status(IStatus.ERROR, "CIMSPLEditor", IStatus.OK,message, null);
+		throw new CoreException(status);
+	}
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationConfigData.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationConfigData.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationConfigData.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationConfigData.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+package org.apache.imperius.spl.editor.tool.ui.wizard;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class NewPolicyFileCreationConfigData {
+
+	private Map parameterMap = null;
+	public static final String SPL_FILE_NAME_KEY = "SPL_FILE_NAME";
+	public static final String SPL_CONTAINER_NAME_KEY = "SPL_CONTAINER_NAME";
+	public static final String SPL_FILE_PATH_KEY = "SPL_FILE_PATH";
+	public static final String SPL_FILE_CONTENT = "SPL_FILE_CONTENT";
+	
+
+	public NewPolicyFileCreationConfigData() {
+		parameterMap = new HashMap();
+	}
+
+	public void addParameter(String key, String value) {
+		if (parameterMap != null) {
+			parameterMap.put(key, value);
+		}
+	}
+
+	public String getParameter(String key) {
+		if (parameterMap != null && parameterMap.containsKey(key)) {
+			return (String) parameterMap.get(key);
+		}
+		return null;
+	}
+}
\ No newline at end of file

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyFileCreationConfigData.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyProjectWizard.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyProjectWizard.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyProjectWizard.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyProjectWizard.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,401 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+
+package org.apache.imperius.spl.editor.tool.ui.wizard;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.imperius.spl.editor.tool.PluginActivator;
+import org.apache.imperius.spl.editor.tool.internal.messages.PolicyMessages;
+import org.apache.imperius.spl.editor.tool.internal.nature.PolicyNature;
+import org.apache.imperius.spl.editor.tool.utils.EclipseFileUtil;
+import org.apache.imperius.spl.editor.tool.utils.PolicyPluginLogUtil;
+import org.apache.imperius.spl.editor.tool.utils.SPLPolicyUtil;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+
+
+public class NewPolicyProjectWizard extends Wizard implements INewWizard {
+
+	private NewPolicyProjectWizardCreationPage projectPage;
+	
+	private DomainPolicyProjectSelectionPage domainSelectionPage;
+	
+	private final static String IMPERIUS_SPL_CORE_JAR = "imperius-splcore-1.0.0.jar";
+	
+	private static NewPolicyProjectWizard projectWizard = null;
+
+	public NewPolicyProjectWizard() {
+		setWindowTitle(PolicyMessages.getString("SPL_NEWPROJECT_WIZARD_TITLE"));
+		setNeedsProgressMonitor(true);
+		projectWizard = this;
+	}
+	
+
+	/**
+	 * Adds wizard pages.
+	 */
+	public void addPages() {
+		domainSelectionPage = new DomainPolicyProjectSelectionPage(PolicyMessages.getString("SPL_DOMAIN_SELECTION_PAGE"));
+		domainSelectionPage.setTitle(PolicyMessages.getString("SPL_DOMAIN_LANGUAGE_SELECTION"));
+		domainSelectionPage.setDescription(PolicyMessages.getString("SPL_DOMAIN_LANGUAGE_SELECTION_DESC"));
+		addPage(domainSelectionPage);
+		
+		projectPage = new NewPolicyProjectWizardCreationPage(PolicyMessages.getString("SPL_PROJECT_PAGE_TITLE"));
+		projectPage.setTitle(PolicyMessages.getString("SPL_PROJECT_CREATION"));
+		projectPage.setDescription(PolicyMessages.getString("SPL_NAME_FOR_NEW_PROJECT"));
+		addPage(projectPage);
+	}
+
+	public boolean performFinish() {
+		
+		// Get project from projectPage
+		final IProject newProject = projectPage.getProjectHandle();
+		
+		// Get project location as required
+		final IPath projectLoc = getProjectLocation();
+		
+		WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
+			protected void execute(IProgressMonitor monitor)
+			throws CoreException, InvocationTargetException,
+			InterruptedException {
+				monitor.beginTask(PolicyMessages.getString("SPL_PROJECT_CREATION"), 3000);
+				monitor.worked(1000);
+				createProject(newProject, projectLoc, new SubProgressMonitor(monitor, 1000));
+				monitor.done();
+			}
+		};
+		
+		try {
+			getContainer().run(true, false, op);
+		} catch (InvocationTargetException ex) {
+			PolicyPluginLogUtil.logError(ex);
+		} catch (InterruptedException e) {
+			PolicyPluginLogUtil.logError(e);
+		} catch (Exception e) {
+			PolicyPluginLogUtil.logError(e);
+		}
+		
+		// If project exists, return true, if not return false
+		if (newProject.exists()) {
+ 			return true;
+		} else {
+			return false;
+		}
+	}
+	
+	/**
+	 * 
+	 * @param monitor
+	 * @throws CoreException
+	 */
+	private void doCreateSPLCacheFiles(String projectname) throws CoreException {
+		String filePath = "/" + projectname + "/" + PluginActivator.getDefault().getMessage("CIMSPL_CACHE_FILE_NAME");
+		IFile splCacheFile = EclipseFileUtil.getIFile(filePath);
+		createSPLCacheFileAction("", splCacheFile);
+		
+		filePath = "/" + projectname + "/" + PluginActivator.getDefault().getMessage("SPL_OPTIONS_FILE_NAME");
+		splCacheFile = EclipseFileUtil.getIFile(filePath);
+		PluginActivator.getDefault().setProjectType(projectname, domainSelectionPage.getSelectedLanguage());
+		String contents = "SPL_LANGUAGE:="+domainSelectionPage.getSelectedLanguage();
+		createSPLCacheFileAction(contents, splCacheFile);
+		
+		filePath = "/" + projectname + "/" + PluginActivator.getDefault().getMessage("SPL_CUSTOM_EXPR_FILE_NAME");
+		splCacheFile = EclipseFileUtil.getIFile(filePath);
+		createSPLCacheFileAction("", splCacheFile);
+	}
+
+	/**
+	 * 
+	 * @param splsplFile
+	 * @param monitor
+	 */
+	private void createSPLCacheFileAction(String contents, IFile cimsplFile) {
+		try {
+			ByteArrayInputStream baInputStream = new ByteArrayInputStream(contents.getBytes());
+			if(cimsplFile.exists()) {
+				cimsplFile.delete(true, null);
+			}
+			cimsplFile.create(baInputStream, true, null);
+		} catch (CoreException ce) {
+			PolicyPluginLogUtil.logError(PolicyMessages.getString("CACHE_FILE_CREATION_ERROR_") + " ", ce);
+		}
+	}	
+
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		// do nothing
+	}
+
+	private IPath getProjectLocation() {
+		IPath projectLoc = null;
+		if (!projectPage.useDefaults())
+			projectLoc = projectPage.getLocationPath();
+		return projectLoc;
+	}
+
+	private void createProject(IProject newProject, IPath projectLoc, IProgressMonitor monitor) {
+		
+		// Create project description
+		IProjectDescription projectDesc = PluginActivator.getWorkspace().newProjectDescription(newProject.getName());
+		projectDesc.setLocation(projectLoc);
+		
+		// Create project
+		try {
+			// check the name of the domain selected
+//			String configJavaProjList = PluginActivator.getDefault().getResourceBundle().getString("CONFIGURE_JAVA_PROJECTS");
+//			if(configJavaProjList.indexOf(domainSelectionPage.getSelectedLanguage()) != -1) {
+				newProject.create(null);
+				newProject.open(null);
+
+				IProjectDescription desc = newProject.getDescription();
+				desc.setNatureIds(new String[] {JavaCore.NATURE_ID,PolicyNature.SPL_NATURE_ID});
+				newProject.setDescription(desc,monitor);		
+   
+				IJavaProject javaProj = JavaCore.create(newProject);
+				
+				IFolder binDir = newProject.getFolder("bin");
+				IPath binPath = binDir.getFullPath();
+				javaProj.setOutputLocation(binPath, null);
+
+				Set entries = new HashSet();
+				entries.addAll(Arrays.asList(javaProj.getRawClasspath()));
+				entries.add(JavaRuntime.getDefaultJREContainerEntry());
+				
+//				System.out.println("KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK"+PluginActivator.getDefault().getBundle().getEntry("/splcore.jar").getPath());
+//				System.out.println(PluginActivator.getDefault().getBundle().getEntry("/splcore.jar").getFile());
+//				
+//				System.out.println(PluginActivator.getDefault().getBundle().getLocation());
+				
+//				String splcorePath = PluginActivator.getDefault().getBundle().getLocation() + "splcore.jar";
+//				String splcorePath = "C:\\2007\\ACProject\\PlugInDevelopment\\eclipse\\workspace\\October\\Oct17\\org.apache.imperius.spl.editor.tool\\" + "splcore.jar";				
+
+				String splcorePath = System.getProperty("user.dir") + "\\" + IMPERIUS_SPL_CORE_JAR;
+				javaProj.setRawClasspath((IClasspathEntry[])entries.toArray(new IClasspathEntry[entries.size()]),monitor);
+				SPLPolicyUtil.addSPLCoreJarToProjectsClasspath(newProject,splcorePath);			
+
+//			} else {
+//				newProject.create(projectDesc, monitor);
+//				newProject.open(monitor);
+//				projectDesc = newProject.getDescription();
+//			
+//				// Set SPL nature
+//				PolicyNature.addNature(newProject, monitor);
+//			}
+
+			// create cache files
+			doCreateSPLCacheFiles(newProject.getName());
+		} catch (CoreException e) {
+			e.printStackTrace();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	public static NewPolicyProjectWizard getProjectWizard() {
+		return projectWizard;
+	}
+}
+
+class DomainPolicyProjectSelectionPage extends WizardPage {
+	
+	private String languageSelected = "";
+	
+	private Button languageButton = null;
+	
+//	private static int pageCnt = 0;
+	
+
+	/**
+	 * 
+	 * @param title
+	 */
+	public DomainPolicyProjectSelectionPage(String title) {
+		super(title);
+	}
+	
+//	public IWizardPage getNextPage() {
+//		if(pageCnt==1) {
+//			if(!doCheckConfiguration()) {
+//				new DomainConfigurationErrorWindow(getShell(), getConfigInstructions()).open();
+//				return this;
+//			} else {
+//				return super.getNextPage();
+//			}
+//		}
+//		pageCnt++;
+//		return super.getNextPage();
+//	}
+
+//	public boolean doCheckConfiguration() {
+//		boolean successFlag = true;
+//		try {
+//			// get Binders Map
+//			Map extnMapObj = (Map)PluginActivator.getDefault().getLanguageBinders();
+//			Object object = extnMapObj.get(languageSelected);
+//			if(object instanceof IConfigurationElement) {
+//				IConfigurationElement configChild = (IConfigurationElement)object;
+//				configChild.createExecutableExtension("class");
+//			}
+//		} catch(Exception _ex) {
+//			successFlag = false;
+//		}
+//		return successFlag;
+//	}
+
+
+	/**
+	 * 
+	 */
+	public void createControl(Composite parent) {
+		Composite container = new Composite(parent, SWT.NULL);
+		
+		GridLayout layout = new GridLayout();
+		container.setLayout(layout);
+		layout.numColumns = 1;
+		layout.verticalSpacing = 9;
+
+		Label label = new Label(container, SWT.NULL);
+		label.setText(PolicyMessages.getString("SPL_DOMAIN_SELECTION_LABEL"));
+		
+		// get languages supported
+		String languageStr = PluginActivator.getDefault().getBinderNames();
+		if(languageStr != null) {
+			String[] languagesSupported = languageStr.split(",");
+			if(languagesSupported != null && languagesSupported.length > 0) {
+				for(int i=0;i<languagesSupported.length;i++) {
+					languageButton = new Button(container, SWT.RADIO | SWT.LEFT);
+					languageButton.setText(languagesSupported[i]);
+					languageButton.addSelectionListener(new SelectionAdapter() {
+						public void widgetSelected(SelectionEvent event) {
+							languageSelected = ((Button)event.getSource()).getText();
+						}
+					});
+				}
+				if(languagesSupported.length == 1) {
+					languageButton.setSelection(true);
+					languageSelected = languageButton.getText();
+				} 
+				setPageComplete(true);
+			}
+		} else {
+			setPageComplete(false);
+		}
+		setControl(container);
+	}
+
+	
+//	public String getConfigInstructions() {
+//		StringBuffer sbContents = new StringBuffer();
+//		sbContents.append("<form> <p> <b>Instructions to set up CIM environment</b> </p>" );
+//		sbContents.append("<li><b>Step 0:</b> goto eclipse_home\\plugins\\com.ibm.ac.cimspl.extension\\</li>" );
+//		sbContents.append("<li><b>Step 1:</b> copy JMPIImpl.jar from Pegasus site to the path mentioned in Step 0.</li>" );
+//		sbContents.append("<li><b>Step 2:</b> copy the following dll's from Pegasus site to the path mentioned in Step 0. " );
+//		sbContents.append("(JMPIProviderManager.dll, pegclient.dll, pegconfig.dll, pegprovidermanager.dll, pegslp_client.dll, pegcommon.dll, pegslp_client.dll, pegprovider.dll, pegquerycommon.dll, pegwql.dll )</li>" );
+//		sbContents.append("<li><b>Step 3:</b> restart eclipse</li>" );
+//		sbContents.append("</form>" );
+//
+//		return sbContents.toString();
+//	}
+	
+	/**
+	 * 
+	 * @return
+	 */
+	public String getSelectedLanguage() {
+		return languageSelected;
+	}
+
+}
+
+/**
+ * 
+ * 
+ *
+ */
+
+class NewPolicyProjectWizardCreationPage extends WizardNewProjectCreationPage {
+
+	/**
+	 * 
+	 * @param pageName
+	 */
+	public NewPolicyProjectWizardCreationPage(String pageName) {
+		super(pageName);
+	}
+
+	/**
+	 * 
+	 */
+	protected boolean validatePage() {
+		boolean superValidation = super.validatePage();
+		if (!superValidation)
+			return false;
+		try {
+			if(!super.useDefaults()) {
+				String locationPath = super.getLocationPath().toOSString(); 
+				if(locationPath != null && locationPath.indexOf(File.separator) == -1) {
+					setErrorMessage(PolicyMessages.getString("PROJECT_CREATION_LOCATION_ERROR_"));
+					return false;
+				}
+			}
+			//URI.create(getProjectName());
+		} catch (Throwable t) {
+			setErrorMessage(PolicyMessages.getString("PROJECT_CONTAINS_ERROR_"));
+			return false;
+		}
+		setErrorMessage(null);
+		setMessage(null);
+		return true;
+	}
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/NewPolicyProjectWizard.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/PolicyTemplatePage.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/PolicyTemplatePage.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/PolicyTemplatePage.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/PolicyTemplatePage.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,222 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+package org.apache.imperius.spl.editor.tool.ui.wizard;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.imperius.spl.editor.tool.internal.messages.PolicyMessages;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.text.Document;
+import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+
+
+
+public class PolicyTemplatePage extends WizardPage {
+
+	private SourceViewer templateViewer;
+	
+	private Map templatesMap;
+	
+	private Combo templateCombo = null;
+	
+	private String selectedTemplateStr = "";
+	
+	private String defaultTemplateKey = null;
+	
+	/**
+	 * 
+	 * @param wizard
+	 * @param selection
+	 */
+	public PolicyTemplatePage(NewPolicyEditorWizard wizard, ISelection selection) {
+		super("wizardPage");
+		setTitle(PolicyMessages.getString("SPL_EDITOR_PAGE_WINDOW_TITLE"));
+		setDescription(PolicyMessages.getString("SPL_TEMPLATE_SELECTION_PAGE_DESC"));
+		templatesMap = new HashMap();
+		loadTemplatesFromFile();
+	}
+
+	/**
+	 * 
+	 */
+	private void loadTemplatesFromFile() {
+		try {
+			InputStream in = getClass().getResourceAsStream("/org/apache/imperius/spl/editor/tool/ui/wizard/templates.txt");
+			BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+			String str = null;
+			String templateStr = "";
+			int templateCnt = 0;
+			String templateKey = "";
+			while((str = reader.readLine()) != null) {
+				if(str.startsWith("!")) {
+					if(templateCnt > 0) {
+						templatesMap.put(templateKey, templateStr);
+						templateStr = "";
+					}
+					templateKey = str.trim();
+					templateCnt++;
+				} else {
+					templateStr = templateStr + str + "\n";
+				}
+			}
+			if(templateCnt > 0) {
+				templatesMap.put(templateKey, templateStr);
+			}
+		} catch(Exception e) {
+			e.printStackTrace();
+		}
+	}
+	
+	/**
+	 * @param aParent
+	 */
+	public void createControl(Composite aParent) {
+		Composite container = new Composite(aParent, SWT.NULL);
+		GridLayout layout = new GridLayout();
+		container.setLayout(layout);
+		layout.numColumns = 2;
+		layout.verticalSpacing = 9;
+		
+		// drop down to list template names
+		Label label = new Label(container, SWT.NULL);
+		label.setText(PolicyMessages.getString("SPL_TEMPLATE_SELECTION_LABEL"));
+		
+		templateCombo = new Combo(container, SWT.READ_ONLY|SWT.DROP_DOWN);
+		String[] templates = getTemplateNamesString().split(",");
+		if(templates != null && templates.length > 0) {
+			for (int i = 0; i < templates.length; i++) {
+				templateCombo.add(templates[i]);
+			}
+			templateCombo.select(0);
+			defaultTemplateKey = templates[0];
+			templateCombo.addSelectionListener(new SelectionAdapter() {
+				public void widgetSelected(SelectionEvent event) {
+					if(event.getSource() instanceof Combo) {
+						int selectedIndex = ((Combo)event.getSource()).getSelectionIndex();
+						changeTemplatePreview((String)templateCombo.getItem(selectedIndex));
+					}
+				}
+			});
+		}
+		
+		// viewer to see the selected template
+		label = new Label(container, SWT.NULL);
+		label.setText(PolicyMessages.getString("SPL_TEMPLATE_PREVIEW_SECTION"));
+		label = new Label(container, SWT.NULL); // dummy one
+		Control previewControl = createPreviewer(container);
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		gd.horizontalSpan = 2;
+        gd.widthHint = convertWidthInCharsToPixels(25);
+        gd.heightHint = 200;
+        previewControl.setLayoutData(gd);
+        
+        initializeDefault();
+		setControl(container);
+	}
+
+	/**
+	 * 
+	 */
+	private void initializeDefault() {
+		changeTemplatePreview(defaultTemplateKey);
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	private String getTemplateNamesString() {
+		String templateNameStr = "";
+		try {
+			if(templatesMap != null && templatesMap.size() > 0) {
+				Iterator iterObj = templatesMap.keySet().iterator();
+				while(iterObj.hasNext()) {
+					String key = (String)iterObj.next();
+					templateNameStr = templateNameStr + key.substring(key.indexOf("!")+1) + (iterObj.hasNext()?",":"");
+				}
+			}
+		} catch(Exception e) {
+			// do nothing
+		}
+		return templateNameStr;
+	}
+	
+	/**
+	 * 
+	 * @param container
+	 * @return
+	 */
+	private Control createPreviewer(Composite container) {
+		templateViewer = new SourceViewer(container, null, null, false, 2816);
+        templateViewer.configure(new TemplateSourceViewerConfiguration());
+        //templateViewer.setEditable(false);
+        Font font = JFaceResources.getFont("org.eclipse.jface.textfont");
+        templateViewer.getTextWidget().setFont(font);
+        templateViewer.setDocument(new Document(""));
+		return templateViewer.getControl();
+	}
+
+	/**
+	 * 
+	 * @param templateKey
+	 */
+	private void changeTemplatePreview(String templateKey) {
+		if(templateKey != null && templateKey.length() > 0) {
+			try {
+				selectedTemplateStr = (String)templatesMap.get("!"+templateKey);
+				templateViewer.getDocument().set(selectedTemplateStr);
+				templateViewer.refresh();
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	public String getSelectedTemplate() {
+		return selectedTemplateStr;
+	}
+	
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/PolicyTemplatePage.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/TemplateSourceViewerConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/TemplateSourceViewerConfiguration.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/TemplateSourceViewerConfiguration.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/TemplateSourceViewerConfiguration.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+package org.apache.imperius.spl.editor.tool.ui.wizard;
+
+import org.apache.imperius.spl.editor.tool.ui.IPolicyTokenColorManager;
+import org.apache.imperius.spl.editor.tool.ui.PolicyTokenColorManagerImpl;
+import org.apache.imperius.spl.editor.tool.ui.internal.scanners.IPolicyPartitionScanner;
+import org.apache.imperius.spl.editor.tool.ui.internal.scanners.PolicyFileCommentScanner;
+import org.apache.imperius.spl.editor.tool.ui.internal.scanners.PolicyFileDefaultCodeScanner;
+import org.apache.imperius.spl.editor.tool.ui.internal.scanners.PolicyPartitionScannerImpl;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.presentation.IPresentationReconciler;
+import org.eclipse.jface.text.presentation.PresentationReconciler;
+import org.eclipse.jface.text.rules.DefaultDamagerRepairer;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.eclipse.ui.editors.text.TextSourceViewerConfiguration;
+
+
+public class TemplateSourceViewerConfiguration extends TextSourceViewerConfiguration {
+
+	public TemplateSourceViewerConfiguration() {
+		
+	}
+	public String[] getConfiguredContentTypes(ISourceViewer aSourceViewer) {
+		return PolicyPartitionScannerImpl.getDocumentPartitionTypes();
+	}
+	
+    /**
+	 * Returns the presentation reconciler ready to be used with the given source viewer.
+	 *
+	 * @param sourceViewer the source viewer
+	 * @return the presentation reconciler or <code>null</code> if presentation reconciling should not be supported
+     */
+	public IPresentationReconciler getPresentationReconciler(ISourceViewer aViewer) {
+		
+		PresentationReconciler reconciler = new PresentationReconciler();
+
+		// get Token Color Manager
+		IPolicyTokenColorManager pTokenColorManager = PolicyTokenColorManagerImpl.getTokenColorManagerInstance();
+
+		// set reconciler to generic partitions ie comments
+		DefaultDamagerRepairer damagerRepairer = new DefaultDamagerRepairer(new PolicyFileCommentScanner(pTokenColorManager));
+		reconciler.setDamager(damagerRepairer, IPolicyPartitionScanner.SPL_SINGLELINE_COMMENT);
+		reconciler.setRepairer(damagerRepairer, IPolicyPartitionScanner.SPL_SINGLELINE_COMMENT);
+
+		damagerRepairer = new DefaultDamagerRepairer(new PolicyFileCommentScanner(pTokenColorManager));
+		reconciler.setDamager(damagerRepairer, IPolicyPartitionScanner.SPL_MULTILINE_COMMENT);
+		reconciler.setRepairer(damagerRepairer, IPolicyPartitionScanner.SPL_MULTILINE_COMMENT);
+		
+		damagerRepairer = new DefaultDamagerRepairer(new PolicyFileDefaultCodeScanner(pTokenColorManager));
+		reconciler.setDamager(damagerRepairer, IDocument.DEFAULT_CONTENT_TYPE);
+		reconciler.setRepairer(damagerRepairer, IDocument.DEFAULT_CONTENT_TYPE);
+
+		return reconciler;
+	}
+	
+
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/TemplateSourceViewerConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/templates.txt
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/templates.txt?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/templates.txt (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/templates.txt Mon Jan 14 22:52:53 2008
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+!default
+Import <stmt>;
+Strategy Execute_All_Applicable;
+Declaration
+{
+	<stmts>
+    Macro
+    {
+    	<stmts>
+    }
+}
+
+!policy1
+Import <stmt>;
+Strategy Execute_All_Applicable;
+Declaration
+{
+	<stmts>
+    Macro
+    {
+    	<stmts>
+    }
+}
+Policy 
+{
+    Condition 
+    {
+    	<stmts>
+    }   
+    Decision 
+    {   
+        <stmts>
+    }
+}:<priority_number>;

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/ui/wizard/templates.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/AbstractClassDetails.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/AbstractClassDetails.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/AbstractClassDetails.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/AbstractClassDetails.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+
+package org.apache.imperius.spl.editor.tool.utils;
+
+import java.util.List;
+
+public class AbstractClassDetails {
+
+	private String domain;
+	
+	private String classname;
+	
+	private List properties;
+	
+	private List methods;
+	
+	public AbstractClassDetails() {
+		
+	}
+	
+	
+
+	/**
+	 * @return the classname
+	 */
+	public String getClassname() {
+		return classname;
+	}
+
+	/**
+	 * @param classname the classname to set
+	 */
+	public void setClassname(String classname) {
+		this.classname = classname;
+	}
+
+
+
+	/**
+	 * @return the properties
+	 */
+	public List getProperties() {
+		return properties;
+	}
+
+
+
+	/**
+	 * @param properties the properties to set
+	 */
+	public void setProperties(List properties) {
+		this.properties = properties;
+	}
+
+
+
+	/**
+	 * @return the methods
+	 */
+	public List getMethods() {
+		return methods;
+	}
+
+
+
+	/**
+	 * @param methods the methods to set
+	 */
+	public void setMethods(List methods) {
+		this.methods = methods;
+	}
+
+
+
+	/**
+	 * @return the domain
+	 */
+	public String getDomain() {
+		return domain;
+	}
+
+
+
+	/**
+	 * @param domain the domain to set
+	 */
+	public void setDomain(String domain) {
+		this.domain = domain;
+	}
+	
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/AbstractClassDetails.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassMethod.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassMethod.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassMethod.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassMethod.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+ 
+package org.apache.imperius.spl.editor.tool.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ClassMethod {
+
+	private String methodName;
+	
+	private String methodType;
+	
+	private List methodParameterList;
+
+	/**
+	 * 
+	 */
+	public ClassMethod() {
+		
+	}
+
+	/**
+	 * 
+	 * @return
+	 */
+	public int getParamCount() {
+		if(methodParameterList == null) {
+			return 0;
+		}
+		return methodParameterList.size();
+	}
+
+	/**
+	 * 
+	 * @param mp
+	 */
+	public void addMethodParameter(MethodParameter mp) {
+		if(methodParameterList == null) {
+			methodParameterList = new ArrayList();
+		}
+		methodParameterList.add(mp);
+	}
+
+	/**
+	 * 
+	 * @param index
+	 * @return
+	 */
+	public MethodParameter getParameter(int index) {
+		if(methodParameterList != null && index < methodParameterList.size()) {
+			return (MethodParameter)methodParameterList.get(index);
+		}
+		return null;
+	}
+
+	/**
+	 * @return the methodName
+	 */
+	public String getMethodName() {
+		return methodName;
+	}
+
+	/**
+	 * @param methodName the methodName to set
+	 */
+	public void setMethodName(String methodName) {
+		this.methodName = methodName;
+	}
+
+	/**
+	 * @return the methodType
+	 */
+	public String getMethodType() {
+		return methodType;
+	}
+
+	/**
+	 * @param methodType the methodType to set
+	 */
+	public void setMethodType(String methodType) {
+		this.methodType = methodType;
+	}
+
+	/**
+	 * @return the methodParameterList
+	 */
+	public List getMethodParameterList() {
+		return methodParameterList;
+	}
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassMethod.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassProperty.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassProperty.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassProperty.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassProperty.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+
+package org.apache.imperius.spl.editor.tool.utils;
+
+public class ClassProperty {
+	
+	private String propertyName;
+	
+	private String propertyType;
+	
+	public ClassProperty() {
+		
+	}
+
+	/**
+	 * @return the propertyName
+	 */
+	public String getPropertyName() {
+		return propertyName;
+	}
+
+	/**
+	 * @param propertyName the propertyName to set
+	 */
+	public void setPropertyName(String propertyName) {
+		this.propertyName = propertyName;
+	}
+
+	/**
+	 * @return the propertyType
+	 */
+	public String getPropertyType() {
+		return propertyType;
+	}
+
+	/**
+	 * @param propertyType the propertyType to set
+	 */
+	public void setPropertyType(String propertyType) {
+		this.propertyType = propertyType;
+	}
+	
+	
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClassProperty.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathChangeListener.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathChangeListener.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathChangeListener.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathChangeListener.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,225 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.apache.imperius.spl.editor.tool.utils;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.apache.imperius.spl.editor.tool.PluginActivator;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.runtime.CoreException;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+
+public class ClasspathChangeListener implements IResourceChangeListener {
+
+//	private static final IPath CLASS_PATH = new Path("test/.classpath");
+	
+	private IProject fProject = null;
+	
+//	private boolean isChanged = false;
+	
+	public void resourceChanged(IResourceChangeEvent event) {
+
+		if (event.getType() != IResourceChangeEvent.POST_CHANGE)
+           return;
+		
+        IResourceDelta rootDelta = event.getDelta();
+        
+        //get the delta, if any, for the .classpath file
+//        IResourceDelta docDelta = rootDelta.findMember(CLASS_PATH);
+//        if (docDelta == null)
+//           return;
+        
+        IResourceDeltaVisitor visitor = new IResourceDeltaVisitor() {
+           public boolean visit(IResourceDelta delta) {
+
+        	   //only interested in changed resources (not added or removed)
+              if (delta.getKind() != IResourceDelta.CHANGED)
+                 return true;
+              
+              //only interested in content changes
+              if ((delta.getFlags() & IResourceDelta.CONTENT) == 0)
+                 return true;
+
+              IResource resource = delta.getResource();
+
+              //only interested in files with the "txt" extension
+              if (resource.getType() == IResource.FILE  && resource.getName().equals(".classpath")) {
+            	  IFile file = (IFile)resource;
+            	  fProject = file.getProject();
+            	  if(PluginActivator.getDefault().getProjectType(fProject.getName()) != null ) {
+            		  checkClassPathEntries(fProject, file);
+            	  }
+              }
+              return true;
+           }
+        };
+        
+        try {
+        	rootDelta.accept(visitor);
+//    		if(isChanged) {
+//    			PluginActivator.getDefault().getPreferenceStore().setValue("CUSTOM_EXPR_CHANGED", isChanged);
+//    			isChanged = false;
+//    		}
+        	
+        } catch (CoreException e) {
+           //open error dialog with syncExec or print to plugin log file
+        }
+	}
+	
+	private void checkClassPathEntries(IProject aProject, IFile classpathFile) {
+		try {
+			if(classpathFile != null) {
+				SaxXMLHandler handler = new SaxXMLHandler();
+				SAXParserFactory factory = SAXParserFactory.newInstance();
+				SAXParser saxParser = factory.newSAXParser();
+				saxParser.parse(classpathFile.getContents(), handler);
+				List clspathList = handler.getJarFilesList();
+				
+				// get plugins list
+				Map innerMap = PluginActivator.getDefault().getCustomExprMap(aProject.getName());
+				
+				if(innerMap != null) {
+					Map tempInnerMap = new HashMap();
+					tempInnerMap.putAll(innerMap);
+//					System.out.println("Hi I am innerMap"+innerMap);
+//					System.out.println("Hi I am uuu"+clspathList);
+					if(clspathList != null && (clspathList.size() < innerMap.size())) {
+						// loop thru map
+						Iterator iter = tempInnerMap.keySet().iterator();
+						while(iter.hasNext()) {
+							String key = (String)iter.next();
+							if(!clspathList.contains(key)) {
+								innerMap.remove(key);
+//								isChanged = true;
+							}
+						}
+						// update the file and map
+						PluginActivator.getDefault().setCustomExprMap(aProject, innerMap);
+					}
+				}
+			}
+		} catch(Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+}
+
+class SaxXMLHandler extends DefaultHandler {
+	
+	private final static String CLASSPATH_ENTRY = "classpathentry";
+	
+	private final static String ATTRIBUTE = "attribute";
+	
+	private final static String ATTRI_NAME = "name";
+	
+	private final static String LIB = "lib";
+	
+	private final static String KIND = "kind";
+	
+	private final static String PATH = "path";
+	
+	private String strJarPath;
+	
+	private List jarpathEntriesList;
+	
+	public SaxXMLHandler() {
+		jarpathEntriesList = new ArrayList();
+	}
+	
+	public void startElement(String uri, String localName, String name,
+			Attributes attributes) throws SAXException {
+		// check for classpath entry
+		if(CLASSPATH_ENTRY.equals(name)) {
+			setPathToString(attributes);
+		} else if(ATTRIBUTE.equals(name)) {
+			if(isCustomAttributeElement(attributes)) {
+				if(strJarPath != null) {
+					jarpathEntriesList.add(new File(strJarPath).getName());
+				}
+				
+			}
+		}
+	}
+	
+	private boolean isCustomAttributeElement(Attributes attributes) {
+		boolean flag = false;
+		if(attributes != null && attributes.getLength() > 0) {
+			for(int i=0;i<attributes.getLength();i++) {
+				String qName = attributes.getQName(i);
+				String value = attributes.getValue(qName);
+				if(ATTRI_NAME.equals(qName)) {
+					if(value.equals("custom")) {
+						flag = true;
+						break;
+					}
+				} 
+			}
+		}
+		return flag;
+	}
+	
+	private void setPathToString(Attributes attributes) {
+		if(attributes != null && attributes.getLength() > 0) {
+			boolean flag = false;
+			for(int i=0;i<attributes.getLength();i++) {
+				String qName = attributes.getQName(i);
+				String value = attributes.getValue(qName);
+				if(KIND.equals(qName) && LIB.equals(value)) {
+					flag = true;
+					continue;
+				} else if(PATH.equals(qName) && !"".equals(value)) {
+					if(flag) {
+						strJarPath = value;
+					}
+				} else {
+					continue;
+				}
+			}
+		}
+	}
+	
+	
+	public void endElement(String uri, String localName, String name)
+			throws SAXException {
+		// do nothing
+	}
+	
+	public List getJarFilesList() {
+		return jarpathEntriesList;
+	}
+
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathChangeListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathXMLHandler.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathXMLHandler.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathXMLHandler.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathXMLHandler.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+package org.apache.imperius.spl.editor.tool.utils;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class ClasspathXMLHandler extends DefaultHandler {
+	
+	private final static String CLASSPATH_ENTRY = "classpathentry";
+	
+	public final static String IMPERIUS_SPL_CORE_JAR = "imperius-splcore-1.0.0.jar";
+	
+	private final static String LIB = "lib";
+	
+	private final static String KIND = "kind";
+	
+	private final static String PATH = "path";
+	
+	private List classpathEntriesList = null;
+	
+	private String projectPath = "";
+	
+	private final static String ATTRIBUTE = "attribute";
+	
+	private final static String ATTRI_NAME = "name";
+
+	private String pathValue = null;
+	
+	private boolean isCustom = false;
+	
+	public ClasspathXMLHandler() {
+		classpathEntriesList = new ArrayList();
+	}
+	
+	public void startElement(String uri, String localName, String name,
+			Attributes attributes) throws SAXException {
+		// check for classpath entry
+		if(CLASSPATH_ENTRY.equals(name)) {
+			isCustom = false;
+			pathValue = null;
+			addEntriesToList(attributes);
+		} else if(ATTRIBUTE.equals(name)) {
+			if(isCustomAttributeElement(attributes)) {
+				isCustom = true;
+			} 
+		}
+	}
+	
+	private boolean isCustomAttributeElement(Attributes attributes) {
+		boolean flag = false;
+		if(attributes != null && attributes.getLength() > 0) {
+			for(int i=0;i<attributes.getLength();i++) {
+				String qName = attributes.getQName(i);
+				String value = attributes.getValue(qName);
+				if(ATTRI_NAME.equals(qName)) {
+					if(value.equals("custom")) {
+						flag = true;
+						break;
+					}
+				} 
+			}
+		}
+		return flag;
+	}
+	
+	private void addEntriesToList(Attributes attributes) {
+		if(attributes != null && attributes.getLength() > 0) {
+			for(int i=0;i<attributes.getLength();i++) {
+				String qName = attributes.getQName(i);
+				String value = attributes.getValue(qName);
+				if(KIND.equals(qName) && LIB.equals(value)) {
+					continue;
+				} else if(PATH.equals(qName) && !"".equals(value)) {
+					pathValue = value;
+					break;
+				} else {
+					continue;
+				}
+			}
+		}
+	}
+	
+	
+	public void endElement(String uri, String localName, String name)
+			throws SAXException {
+		// do nothing
+		if(CLASSPATH_ENTRY.equals(name)) {
+			if(!isCustom) {
+				if(pathValue != null) {
+					//if(pathValue.endsWith(IMPERIUS_SPL_CORE_JAR)) 
+					{
+						classpathEntriesList.add(pathValue);
+					} 
+					/*else 
+					{
+						classpathEntriesList.add(projectPath + File.separator +  pathValue);
+					}*/
+					
+					
+				}
+			}
+		} else if(ATTRIBUTE.equals(name)) {
+			if(isCustom && pathValue != null) { 
+				classpathEntriesList.add(pathValue);
+			} 
+		}
+//		System.out.println("classpathEntriesList"+classpathEntriesList);
+	}
+	
+	public List getClassPathEntriesList() {
+		return classpathEntriesList;
+	}
+	
+	public void setProjectPath(String aProjectPath) {
+		projectPath = aProjectPath;
+	}
+	
+
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/ClasspathXMLHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/DomainConfigurationErrorWindow.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/DomainConfigurationErrorWindow.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/DomainConfigurationErrorWindow.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/DomainConfigurationErrorWindow.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,130 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+package org.apache.imperius.spl.editor.tool.utils;
+
+import org.eclipse.jface.window.ApplicationWindow;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.Form;
+import org.eclipse.ui.forms.widgets.FormText;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+public class DomainConfigurationErrorWindow extends ApplicationWindow {
+
+	private FormToolkit toolkit = null;
+
+	private Form form = null;
+
+	private String configInstructions = null;
+
+	public DomainConfigurationErrorWindow(Shell parentShell, String fConfigInstr) {
+		super(parentShell);
+		configInstructions = fConfigInstr;
+	}
+
+	public void openApplication() {
+		// Don't return from open() until window closes
+		setBlockOnOpen(true);
+
+		// Open the main window
+		open();
+
+		// Dispose the display
+		Display.getCurrent().dispose();
+	}
+
+	protected void configureShell(Shell shell) {
+		super.configureShell(shell);
+		shell.setText("Simulated Run Application");
+	}
+
+	protected void initializeBounds() {
+		getShell().setSize(500, 400);
+	}
+
+	protected Control createContents(Composite parent) {
+		Composite composite = new Composite(parent, SWT.NULL);
+		composite.setLayout(new GridLayout());
+
+		// Sets up the toolkit.
+		toolkit = new FormToolkit(getShell().getDisplay());
+
+		// Creates a form instance.
+		form = toolkit.createForm(composite);
+		form.setLayoutData(new GridData(GridData.FILL_BOTH));
+	
+		// Sets title.
+		form.setText("Configuaration Error");
+		createGUI();
+		return composite;
+	}
+	
+	private void createGUI() {
+		form.getBody().setLayout(new GridLayout());
+		toolkit.createLabel(form.getBody(), "Environment is not configured to run");
+		form.getBody().setLayout(new TableWrapLayout());
+	
+		ExpandableComposite ec1 = toolkit.createExpandableComposite(form.getBody(), ExpandableComposite.TREE_NODE | ExpandableComposite.EXPANDED);
+		ec1.setText("Click here to see Instructions");
+		FormText text = toolkit.createFormText(ec1, false);
+		text.setText(configInstructions, true, false);
+		ec1.setClient(text);
+		ec1.addExpansionListener(new ExpansionAdapter() {
+			public void expansionStateChanged(ExpansionEvent e) {
+				// resizes the application window.
+				if(e.getState()) {
+					getShell().setSize(500, 400);
+				}
+			}
+		});
+	}
+
+	public static String getConfigInstructions() {
+		StringBuffer sbContents = new StringBuffer();
+		sbContents.append("<form> <p> <b>Instructions to set up CIM environment</b> </p>" );
+		sbContents.append("<li><b>Step 0:</b> goto eclipse_home\\plugins\\com.ibm.ac.cimspl.extension\\</li>" );
+		sbContents.append("<li><b>Step 1:</b> copy JMPIImpl.jar from Pegasus site to the path mentioned in Step 0.</li>" );
+		sbContents.append("<li><b>Step 2:</b> copy the following dll's from Pegasus site to the path mentioned in Step 0. " );
+		sbContents.append("(JMPIProviderManager.dll, pegclient.dll, pegconfig.dll, pegprovidermanager.dll, pegslp_client.dll, pegcommon.dll, pegslp_client.dll, pegprovider.dll, pegquerycommon.dll, pegwql.dll )</li>" );
+		sbContents.append("<li><b>Step 3:</b> restart eclipse</li>" );
+		sbContents.append("</form>" );
+		return sbContents.toString();
+	}
+	
+	public static void main(String[] args) {
+		DomainConfigurationErrorWindow win = new DomainConfigurationErrorWindow(new Shell(), getConfigInstructions());
+		win.setBlockOnOpen(true);
+		win.open();
+	}
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/DomainConfigurationErrorWindow.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/EclipseFileUtil.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/EclipseFileUtil.java?rev=612031&view=auto
==============================================================================
--- incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/EclipseFileUtil.java (added)
+++ incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/EclipseFileUtil.java Mon Jan 14 22:52:53 2008
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * 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.  
+ */
+
+/**
+ * @author Naidu Javvadi <nj...@in.ibm.com>
+ *
+ */
+
+
+package org.apache.imperius.spl.editor.tool.utils;
+
+import java.io.ByteArrayInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import org.apache.imperius.spl.editor.tool.PluginActivator;
+import org.apache.imperius.spl.editor.tool.internal.messages.PolicyMessages;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+//import org.eclipse.emf.common.util.URI;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.osgi.framework.Bundle;
+
+
+public class EclipseFileUtil {
+
+	/**
+	 * 
+	 * @param root
+	 * @param filePath
+	 * @return
+	 * @throws CoreException
+	 */
+	public static IFile getIFile(IWorkspaceRoot root, String filePath) throws CoreException {
+		if (filePath.startsWith("platform:/resource/")) {
+			int beginIndex = filePath.lastIndexOf("platform:/resource/") + "platform:/resource/".length();
+			//filePath = URI.decode(filePath.substring(beginIndex));
+		} else if (filePath.startsWith("platform:/plugin/")) {
+			IPath path = new Path(filePath);
+			return root.getFile(path);
+		}
+		String fileName = filePath.substring(filePath.lastIndexOf('/') + 1);
+		String parentContainer = filePath.substring(0, filePath.lastIndexOf('/'));
+		IResource resource = root.findMember(new Path(parentContainer));
+		if (!resource.exists() || !(resource instanceof IContainer)) {
+			throw new CoreException(PolicyPluginLogUtil.createStatus(IStatus.ERROR, IStatus.OK, NLS.bind(PolicyMessages.getString("CONTAINER_DOES_NOT_EXISTS_ERROR_"), parentContainer), null));
+		}
+		IContainer container = (IContainer) resource;
+		return container.getFile(new Path(fileName));
+	}
+
+	/**
+	 * 
+	 * @param filePath
+	 * @return
+	 * @throws CoreException
+	 */
+	public static IFile getIFile(String filePath) throws CoreException {
+		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+		return getIFile(root, filePath);
+	}
+
+	/**
+	 * 
+	 * @param filePath
+	 * @return
+	 * @throws CoreException
+	 */
+	public static IFile getCacheFile(String filePath) throws CoreException {
+		IFile file = getIFile(filePath);
+		if(!file.exists()) {
+			// create file
+			ByteArrayInputStream iSource = new ByteArrayInputStream("".getBytes());
+			file.create(iSource, true, null);
+		}
+		return file;
+	}
+	
+	private static InputStream relativeStream(String relName)
+			throws IOException {
+		Bundle bundle = PluginActivator.getDefault().getBundle();
+		Path path = new Path(relName);
+		URL fileURL = Platform.find(bundle, path);
+		if (fileURL == null) {
+			throw new FileNotFoundException(relName);
+		}
+
+		InputStream is = fileURL.openStream();
+		return is;
+	}
+
+	/**
+	 * Load an image, such as icons/foo.gif, from the icons directory.
+	 */
+	public static Image loadImage(Display display, String relName) {
+		InputStream is = null;
+		Image img;
+		try {
+			is = relativeStream(relName);
+			img = new Image(display, is);
+		} catch (IOException e) {
+			return null;
+		} finally {
+			if (is != null) {
+				try {
+					is.close();
+				} catch (IOException e1) {
+					// If close fails, ignore.
+				}
+			}
+		}
+		return img;
+	}
+	
+	/**
+	 * 
+	 * @param root
+	 * @param filePath
+	 * @return
+	 * @throws CoreException
+	 */
+	public static IFolder getIFolder(IWorkspaceRoot root, String filePath) throws CoreException {
+		if (filePath.startsWith("platform:/resource/")) {
+			int beginIndex = filePath.lastIndexOf("platform:/resource/") + "platform:/resource/".length();
+			//filePath = URI.decode(filePath.substring(beginIndex));
+		} else if (filePath.startsWith("platform:/plugin/")) {
+			IPath path = new Path(filePath);
+			return root.getFolder(path);
+		}
+		String fileName = filePath.substring(filePath.lastIndexOf('/') + 1);
+		String parentContainer = filePath.substring(0, filePath.lastIndexOf('/'));
+		IResource resource = root.findMember(new Path(parentContainer));
+		if (!resource.exists() || !(resource instanceof IContainer)) {
+			throw new CoreException(PolicyPluginLogUtil.createStatus(IStatus.ERROR, IStatus.OK, NLS.bind(PolicyMessages.getString("CONTAINER_DOES_NOT_EXISTS_ERROR_"), parentContainer), null));
+		}
+		IContainer container = (IContainer) resource;
+		return container.getFolder(new Path(fileName));
+	}
+
+	
+	
+	public static IFolder createFolder(String filePath) throws CoreException {
+		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+		return getIFolder(root, filePath);
+	}
+	
+}

Propchange: incubator/imperius/trunk/imperius-spleditorcore/src/org/apache/imperius/spl/editor/tool/utils/EclipseFileUtil.java
------------------------------------------------------------------------------
    svn:eol-style = native