/*******************************************************************************
* Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.common.model.ui.wizard.newfile;
import java.beans.*;
import org.jboss.tools.common.model.ui.attribute.XAttributeSupport;
import org.eclipse.jface.wizard.*;
import org.eclipse.swt.widgets.*;
public class NewFileWizardPage extends WizardPage {
protected XAttributeSupport support;
protected NewFileContext context;
public NewFileWizardPage(NewFileContext context) {
super(context.getWindowTitle());
this.context = context;
support = new XAttributeSupport(context.getSupport().getTarget(), context.getSupport().getEntityData()[0]);
setErrorMessage(null);
setTitle(context.getTitle());
setMessage(null);
}
public void dispose() {
super.dispose();
if (support!=null) support.dispose();
support = null;
}
public void createControl(Composite parent) {
Control control = support.createControl(parent);
setControl(control);
support.addPropertyChangeListener(new PCL());
validatePage();
}
public void update() {
if(context.update()) {
support.load();
validatePage();
}
}
private void validatePage() {
support.save();
String message = context.validate(support.getValues());
setErrorMessage(message);
setPageComplete(message == null);
}
class PCL implements PropertyChangeListener {
public void propertyChange(PropertyChangeEvent evt) {
validatePage();
}
}
}