/******************************************************************************* * Copyright (c) 2008 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.smooks.graphical.actions; import java.io.File; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Path; import org.eclipse.gef.ui.actions.SelectionAction; import org.eclipse.ui.IWorkbenchPart; import org.jboss.tools.smooks.configuration.editors.utils.SmooksUIUtils; import org.jboss.tools.smooks.graphical.editors.SmooksGraphicalEditorPart; import org.jboss.tools.smooks.graphical.editors.autolayout.IAutoLayout; /** * @author Dart * */ public class AutoLayoutAction extends SelectionAction { public static final String ID = "_smooks_auto_layout"; //$NON-NLS-1$ public AutoLayoutAction(IWorkbenchPart part, int style) { super(part, style); } public AutoLayoutAction(IWorkbenchPart part) { super(part); } /* * (non-Javadoc) * * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#init() */ @Override protected void init() { super.init(); this.setText(Messages.AutoLayoutAction_Action_Text); } /* * (non-Javadoc) * * @see org.eclipse.gef.ui.actions.WorkbenchPartAction#calculateEnabled() */ @Override protected boolean calculateEnabled() { IWorkbenchPart part = this.getWorkbenchPart(); if (part instanceof SmooksGraphicalEditorPart) { IAutoLayout layout = ((SmooksGraphicalEditorPart) part).getAutoLayout(); return (layout != null); } return false; } /* * (non-Javadoc) * * @see org.eclipse.jface.action.Action#run() */ @Override public void run() { // if (false) { // IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("test"); // File file = project.getLocation().toFile(); // File[] children = file.listFiles(); // for (int i = 0; i < children.length; i++) { // File child = children[i]; // copySmooksFile(child, project); // } // } IWorkbenchPart part = this.getWorkbenchPart(); if (part instanceof SmooksGraphicalEditorPart) { ((SmooksGraphicalEditorPart) part).autoLayout(true); } } /** * @deprecated * @param file * @param parent */ private void copySmooksFile(File file, IContainer parent) { if (file.exists()) { if (file.isFile()) { IFile ifile = parent.getFile(new Path(file.getName())); if (ifile.exists() && SmooksUIUtils.isSmooksFile(ifile)) { IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("validation-test"); //$NON-NLS-1$ IFolder folder = project.getFolder("src"); //$NON-NLS-1$ IFile newFile = folder.getFile(parent.getName()+ "_" + ifile.getName()); //$NON-NLS-1$ try { if (newFile.exists()) { newFile.setContents(ifile.getContents(), true, false, null); } else { newFile.create(ifile.getContents(), true, null); } } catch (Exception e) { e.printStackTrace(); } } } if (file.isDirectory()) { IContainer container = parent.getFolder(new Path(file.getName())); if (container.exists()) { File[] files = file.listFiles(); for (int i = 0; i < files.length; i++) { File file2 = files[i]; copySmooksFile(file2, container); } } } } } }