/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* Licensed 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
*******************************************************************************/
package org.ebayopensource.turmeric.eclipse.typelibrary.ui.wizards.pages;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.ebayopensource.turmeric.eclipse.core.resources.constants.SOAProjectConstants;
import org.ebayopensource.turmeric.eclipse.core.resources.constants.SOAXSDTemplateSubType;
import org.ebayopensource.turmeric.eclipse.repositorysystem.core.GlobalRepositorySystem;
import org.ebayopensource.turmeric.eclipse.repositorysystem.core.ISOAHelpProvider;
import org.ebayopensource.turmeric.eclipse.typelibrary.ui.TypeLibraryUtil;
import org.ebayopensource.turmeric.eclipse.ui.SOABasePage;
import org.ebayopensource.turmeric.eclipse.utils.ui.UIUtil;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
/**
* Type Selection Page.
*
* @author ramurthy
*/
public class TypeSelectionWizardPage extends SOABasePage {
private Composite container;
private List<Button> typeButtons = new ArrayList<Button>();
private static Map<SOAXSDTemplateSubType, String> templateCategoryMap;
/**
* Instantiates a new type selection wizard page.
*/
public TypeSelectionWizardPage() {
super("typeSelectionWizardPage", "Type Selection", "Select a type");
}
/**
* Gets the selected type name.
*
* @return the selected type name
*/
public String getSelectedTypeName() {
for (int i = 0; i < typeButtons.size(); i++) {
if (typeButtons.get(i).getSelection())
return typeButtons.get(i).getText();
}
return null;
}
/**
* Gets the selected type.
*
* @return the selected type
*/
public Object getSelectedType() {
for (int i = 0; i < typeButtons.size(); i++) {
if (typeButtons.get(i).getSelection())
return typeButtons.get(i).getData();
}
return null;
}
/**
* {@inheritDoc}
*/
@Override
public void createControl(Composite parent) {
container = new Composite(parent, SWT.NONE);
container.setLayout(new GridLayout(1, true));
templateCategoryMap = TypeLibraryUtil.getTemplateCategoryMap();
for (SOAXSDTemplateSubType subType: templateCategoryMap.keySet()) {
Button button = new Button(container, SWT.RADIO);
button.setText(templateCategoryMap.get(subType));
button.setData(subType);
typeButtons.add(button);
if (subType.equals(SOAXSDTemplateSubType.COMPLEX)) {
// select complex type as default if it exists
button.setSelection(true);
}
}
setControl(container);
UIUtil.getHelpSystem().setHelp(container, getHelpContextID());
}
/**
* Checks if is simple type.
*
* @return true, if is simple type
*/
public boolean isSimpleType() {
return SOAXSDTemplateSubType.SIMPLE.equals(getSelectedType());
}
/**
* Checks if is enum type.
*
* @return true, if is enum type
*/
public boolean isEnumType() {
return SOAXSDTemplateSubType.ENUM.equals(getSelectedType());
}
/**
* Checks if is complex type.
*
* @return true, if is complex type
*/
public boolean isComplexType() {
return SOAXSDTemplateSubType.COMPLEX.equals(getSelectedType());
}
/**
* Checks if is complex sc type.
*
* @return true, if is complex sc type
*/
public boolean isComplexSCType() {
return SOAXSDTemplateSubType.COMPLEX_SIMPLECONTENT.equals(getSelectedType());
}
/**
* Checks if is complex cc type.
*
* @return true, if is complex cc type
*/
public boolean isComplexCCType() {
return SOAXSDTemplateSubType.COMPLEX_COMPLEXCONTENT.equals(getSelectedType());
}
/* (non-Javadoc)
* @see org.ebayopensource.turmeric.eclipse.ui.SOABasePage#getHelpContextID()
*/
@Override
public String getHelpContextID() {
return GlobalRepositorySystem.instanceOf().getActiveRepositorySystem()
.getHelpProvider().getHelpContextID(
ISOAHelpProvider.PAGE_CREATE_SCHEMA_TYPE);
}
/* (non-Javadoc)
* @see org.ebayopensource.turmeric.eclipse.ui.SOABasePage#getDefaultValue(org.eclipse.swt.widgets.Text)
*/
@Override
public String getDefaultValue(Text text) {
return SOAProjectConstants.EMPTY_STRING;
}
}