blob: e171d7239646217bde82b8bdf9c8a24a9121a8a2 [file] [log] [blame]
/*
* Copyright (c) 2010-2012, 2015 Eike Stepper (Berlin, Germany) and others.
* All rights reserved. This program and the accompanying materials
* are 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:
* Martin Fluegge - initial API and implementation
*/
package org.eclipse.emf.cdo.dawn.ui.wizards;
import org.eclipse.emf.cdo.dawn.ui.composites.CDOResourceNodeChooserComposite;
import org.eclipse.emf.cdo.dawn.ui.composites.CDOResourceNodeChooserComposite.ResourceChooserValidator;
import org.eclipse.emf.cdo.dawn.ui.composites.CDOResourceNodeChooserComposite.ValidationListener;
import org.eclipse.emf.cdo.dawn.ui.messages.Messages;
import org.eclipse.emf.cdo.view.CDOView;
import org.eclipse.emf.common.util.URI;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
/**
* @author Martin Fluegge
*/
public class DawnCreateNewResourceWizardPage extends WizardPage
{
private Composite container;
private boolean showResources;
private final String fileExtension;
private int resourceValidationType = ResourceChooserValidator.VALIDATION_ERROR;
/**
* left for backward compatibility with the generated editors. This field might soon be removed. Use
* <b>org.eclipse.emf.cdo.dawn.ui.composites.ResourceChooserValidator.VALIDATION_WARN</b> instead.
*/
@Deprecated
public static final int VALIDATION_WARN = ResourceChooserValidator.VALIDATION_WARN;
private final CDOView view;
// private String resourceNamePrefix = "default"; //$NON-NLS-1$
private boolean createAutomaticResourceName;
/**
* @since 1.0
*/
protected CDOResourceNodeChooserComposite chooserComposite;
public DawnCreateNewResourceWizardPage(String fileExtension)
{
this(fileExtension, true, null);
}
public DawnCreateNewResourceWizardPage(String fileExtension, boolean showResources, CDOView view)
{
super(Messages.DawnCreateNewResourceWizardPage_0);
this.view = view;
setTitle(Messages.DawnCreateNewResourceWizardPage_2);
setDescription(Messages.DawnCreateNewResourceWizardPage_3);
this.showResources = showResources;
this.fileExtension = fileExtension;
}
public void createControl(Composite parent)
{
container = new Composite(parent, SWT.NULL);
GridLayout layout = new GridLayout();
container.setLayout(layout);
layout.numColumns = 1;
chooserComposite = new CDOResourceNodeChooserComposite(container, SWT.NONE, fileExtension, view);
chooserComposite.showResources(showResources);
ResourceChooserValidator validator = chooserComposite.getValidator();
validator.setResourceValidationType(resourceValidationType);
validator.setValidationListener(new ValidationListener()
{
public void validationFinished()
{
validatePage();
}
});
if (createAutomaticResourceName)
{
chooserComposite.createAutomaticResourceName();
}
GridData gd = new GridData(GridData.FILL_BOTH);
chooserComposite.setLayoutData(gd);
setControl(container);
validator.validate();
}
private void validatePage()
{
ResourceChooserValidator validator = chooserComposite.getValidator();
boolean valid = validator.isValid();
if (!valid)
{
int type = validator.getMessageType();
setMessage(validator.getMessage(), type);
}
else
{
setMessage("");
}
setPageComplete(valid);
}
public URI getURI()
{
return chooserComposite.getURI();
}
public void setShowResources(boolean showResources)
{
this.showResources = showResources;
}
public boolean isShowResources()
{
return showResources;
}
public void setResourceNamePrefix(String resourceNamePrefix)
{
// this.resourceNamePrefix = resourceNamePrefix;
chooserComposite.setResourceNamePrefix(resourceNamePrefix);
chooserComposite.setResourceName(resourceNamePrefix);
}
public String getResourceNamePrefix()
{
return chooserComposite.getResourceNamePrefix();
}
public void setResourcePath(String text)
{
if (!text.endsWith("/") || !!text.endsWith("\\")) //$NON-NLS-1$ //$NON-NLS-2$
{
text += "/"; //$NON-NLS-1$
}
chooserComposite.setResourcePath(text);
}
public String getResourcePath()
{
return chooserComposite.getResourcePath();
}
public void setCreateAutomaticResourceName(boolean createAutomaticResourceName)
{
this.createAutomaticResourceName = createAutomaticResourceName;
}
public boolean isCreateAutomaticResourceName()
{
return createAutomaticResourceName;
}
public void setResourceValidationType(int resourceValidationType)
{
this.resourceValidationType = resourceValidationType;
}
public int getResourceValidationType()
{
return resourceValidationType;
}
public String getDefaultName()
{
return chooserComposite.getDefaultName();
}
}