package org.zend.php.zendserver.deployment.ui.editors;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.dialogs.ListDialog;
import org.zend.php.zendserver.deployment.core.descriptor.DeploymentDescriptorFactory;
import org.zend.php.zendserver.deployment.core.descriptor.DeploymentDescriptorPackage;
import org.zend.php.zendserver.deployment.core.descriptor.IDeploymentDescriptor;
import org.zend.php.zendserver.deployment.core.descriptor.IDescriptorContainer;
import org.zend.php.zendserver.deployment.core.descriptor.IModelObject;
import org.zend.php.zendserver.deployment.core.descriptor.ProjectType;
import org.zend.php.zendserver.deployment.ui.Messages;
public class DependenciesMasterDetailsProvider implements MasterDetailsProvider {
private IDescriptorContainer fModel;
public DependenciesMasterDetailsProvider(IDescriptorContainer model) {
this.fModel = model;
}
public String getDescription() {
if (fModel.getDescriptorModel().getType() == ProjectType.LIBRARY) {
return Messages.DependenciesMasterDetailsProvider_DescriptionLibrary;
}
return Messages.DependenciesMasterDetailsProvider_Description;
}
public Object[] doGetElements(Object input) {
if (input instanceof IDeploymentDescriptor) {
IDeploymentDescriptor descr = (IDeploymentDescriptor) input;
List<IModelObject> all = new ArrayList<IModelObject>();
all.addAll(descr.getPHPDependencies());
all.addAll(descr.getExtensionDependencies());
all.addAll(descr.getDirectiveDependencies());
all.addAll(descr.getZendServerDependencies());
all.addAll(descr.getZendComponentDependencies());
all.addAll(descr.getZendFrameworkDependencies());
all.addAll(descr.getZendFramework2Dependencies());
all.addAll(descr.getPHPLibraryDependencies());
return all.toArray();
}
if (input instanceof Object[]) {
return (Object[]) input;
}
return null;
}
public Object addElment(IDeploymentDescriptor model,
DescriptorMasterDetailsBlock block) {
Object[] input = new Object[] {
DeploymentDescriptorFactory
.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_PHP),
DeploymentDescriptorFactory
.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_EXTENSION),
DeploymentDescriptorFactory
.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_DIRECTIVE),
DeploymentDescriptorFactory
.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_LIBRARY),
DeploymentDescriptorFactory
.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_ZENDSERVER),
DeploymentDescriptorFactory
.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_ZSCOMPONENT),
DeploymentDescriptorFactory
.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_ZENDFRAMEWORK),
DeploymentDescriptorFactory
.createModelElement(DeploymentDescriptorPackage.DEPENDENCIES_ZENDFRAMEWORK2) };
final Control control = block.viewer.getControl();
final ListDialog sd = new ListDialog(control.getShell());
sd.setInput(input);
sd.setContentProvider((IStructuredContentProvider) block.viewer
.getContentProvider());
sd.setLabelProvider(new DeploymentDescriptorLabelProvider());
sd.setMessage(Messages.DependenciesMasterDetailsProvider_DependencyType);
sd.setTitle(Messages.DependenciesMasterDetailsProvider_Add);
if (sd.open() == Window.CANCEL) {
return null;
}
return sd.getResult()[0];
}
public Class getType() {
return null;
}
public Object doGetParent(Object element) {
// TODO Auto-generated method stub
return null;
}
}