plugins/org.apache.geronimo.st.v21.ui/src/main/java/org/apache/geronimo/st/v21/ui/wizards/PersContextRefWizard.java [43:226]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class PersContextRefWizard extends AbstractTreeWizard {

    private final int CONTEXT = 0;
    private final int PROPERTY = 1;
    
    private final String[] CONTEXT_TYPES = {
            "Extended", "Transactional" };
    protected Combo contextType;
    protected Button specifyUnit;
    protected Button specifyPattern;
    
    public PersContextRefWizard(AbstractTreeSection section) {
        super(section, 2, 8);
        elementTypes[CONTEXT] = "Persistence Context";
        elementTypes[PROPERTY] = "Property";
    }

    public JAXBObjectFactory getEFactory() {
        return JAXBObjectFactoryImpl.getInstance();
    }

    public String getAddWizardWindowTitle() {
        return CommonMessages.wizardNewTitle_PersContextRef;
    }

    public String getEditWizardWindowTitle() {
        return CommonMessages.wizardEditTitle_PersContextRef;
    }
 
    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jface.wizard.IWizard#addPages()
     */
    public void addPages() {
        addPage(new PersContextRefWizardPage("Page0"));
    }

    // need to extend the DynamicWizardPage only so that when the Edit dialog is shown
    // the values are brought in properly.
    public class PersContextRefWizardPage extends AbstractTreeWizardPage {
        public PersContextRefWizardPage(String pageName) {
            super(pageName);
        }

        @Override
        public void createControl(Composite parent) {
            Label label;
            Text text;
            Composite composite = createComposite(parent);
            createLabel(composite, CommonMessages.element);
            element = createCombo(composite, elementTypes, false);
            for (int i = 0; i < maxTextFields; i++) {
                label = createLabel(composite, "");
                labelList.add(label);
                if (i == 1) {
                    contextType = createCombo(composite, CONTEXT_TYPES, false);
                    textList.add (null);
                    specifyUnit = createButton(composite, CommonMessages.useUnitName);
                }
                else {
                    text = createTextField(composite, "");
                    textList.add(text);
                    if (i == 2) {
                        specifyPattern = createButton(composite, CommonMessages.usePattern);
                    }
                }
            }
            element.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent arg0) {
                    toggleFields(true);
                }
            });
            specifyUnit.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent arg0) {
                    toggleFields(false);
                }
            });
            specifyPattern.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent arg0) {
                    toggleFields(false);
                }
            });
            
            initControl();
            toggleFields(false);
            setControl(composite);
        }

        protected void initControl () {
            if (eObject == null) {
                element.select(CONTEXT);
                PersistenceContextRef contextRef = (PersistenceContextRef)section.getSelectedObject();
                if (contextRef == null) {
                    element.setEnabled(false);
                }
            }
            else {
                if (JAXBElement.class.isInstance(eObject)) {
                    eObject = ((JAXBElement)eObject).getValue();
                    PersistenceContextRef contextRef = (PersistenceContextRef)eObject;
                    textList.get(0).setText(contextRef .getPersistenceContextRefName());
                    contextType.setText(contextRef .getPersistenceContextType().value());
                    if (contextRef .getPersistenceUnitName() != null)
                        textList.get(2).setText(contextRef .getPersistenceUnitName());
                    if (contextRef .getPattern() != null) {
                        specifyPattern.setSelection(true);
                        textList.get(3).setText(contextRef.getPattern().getName());
                        if (contextRef .getPattern().getGroupId() != null)
                            textList.get(4).setText(contextRef .getPattern().getGroupId());
                        if (contextRef .getPattern().getArtifactId() != null)
                            textList.get(5).setText(contextRef .getPattern().getArtifactId());
                        if (contextRef .getPattern().getVersion() != null)
                            textList.get(6).setText(contextRef .getPattern().getVersion());
                        if (contextRef .getPattern().getModule() != null)
                            textList.get(7).setText(contextRef .getPattern().getModule());
                    }
                    element.select(CONTEXT);
                }
                else if (Property.class.isInstance(eObject)) {
                    textList.get(0).setText(((Property)eObject).getKey());
                    textList.get(2).setText(((Property)eObject).getValue());
                    element.select(PROPERTY);
                }
                element.setEnabled(false);
            }
        }
        
        protected void toggleFields (boolean clearFields) {
            if (element.getText().equals(elementTypes[CONTEXT])) {
                labelList.get(0).setText(CommonMessages.contextName);
                labelList.get(2).setText(CommonMessages.unitName);
                textList.get(2).setEnabled(specifyUnit.getSelection());
                labelList.get(1).setVisible(true);
                contextType.setVisible(true);    
                specifyUnit.setVisible(true);
                specifyPattern.setVisible(true);
            }
            else {
                labelList.get(0).setText(CommonMessages.name);
                labelList.get(2).setText(CommonMessages.value);
                textList.get(2).setEnabled(true);
                labelList.get(1).setVisible(false);
                contextType.setVisible(false);
                specifyUnit.setVisible(false);
                specifyPattern.setVisible(false);
            }
            labelList.get(1).setText(CommonMessages.type);
            labelList.get(3).setText(CommonMessages.name);
            labelList.get(4).setText(CommonMessages.groupId);
            labelList.get(5).setText(CommonMessages.artifactId);
            labelList.get(6).setText(CommonMessages.version);
            labelList.get(7).setText(CommonMessages.moduleId);
            for (int i = 3; i < maxTextFields; i++) {
                labelList.get(i).setVisible(element.getText().equals(elementTypes[CONTEXT]));
                textList.get(i).setVisible(element.getText().equals(elementTypes[CONTEXT]));
                textList.get(i).setEnabled(specifyPattern.getSelection());
                if (clearFields == true) {
                    textList.get(i).setText("");
                }
            }
        }

        public String getWizardPageTitle() {
            return CommonMessages.wizardPageTitle_PersContextRef;
        }

        public String getWizardPageDescription() {
            return CommonMessages.wizardPageDescription_PersContextRef;
        }
    }

    @Override
    public boolean performFinish() {
        PersistenceContextRef contextRef;
        if (element.getText().equals(elementTypes[CONTEXT])) {
            if (isEmpty(textList.get(0).getText()) ||
                isEmpty(textList.get(2).getText()) && isEmpty(textList.get(3).getText())) {
                return false;
            }
            contextRef = (PersistenceContextRef)eObject;
            ObjectFactory objectFactory = new ObjectFactory();
            if (contextRef == null) {
                contextRef = (PersistenceContextRef)getEFactory().create(PersistenceContextRef.class);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



plugins/org.apache.geronimo.st.v30.ui/src/main/java/org/apache/geronimo/st/v30/ui/wizards/PersContextRefWizard.java [43:226]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class PersContextRefWizard extends AbstractTreeWizard {

    private final int CONTEXT = 0;
    private final int PROPERTY = 1;
    
    private final String[] CONTEXT_TYPES = {
            "Extended", "Transactional" };
    protected Combo contextType;
    protected Button specifyUnit;
    protected Button specifyPattern;
    
    public PersContextRefWizard(AbstractTreeSection section) {
        super(section, 2, 8);
        elementTypes[CONTEXT] = "Persistence Context";
        elementTypes[PROPERTY] = "Property";
    }

    public JAXBObjectFactory getEFactory() {
        return JAXBObjectFactoryImpl.getInstance();
    }

    public String getAddWizardWindowTitle() {
        return CommonMessages.wizardNewTitle_PersContextRef;
    }

    public String getEditWizardWindowTitle() {
        return CommonMessages.wizardEditTitle_PersContextRef;
    }
 
    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jface.wizard.IWizard#addPages()
     */
    public void addPages() {
        addPage(new PersContextRefWizardPage("Page0"));
    }

    // need to extend the DynamicWizardPage only so that when the Edit dialog is shown
    // the values are brought in properly.
    public class PersContextRefWizardPage extends AbstractTreeWizardPage {
        public PersContextRefWizardPage(String pageName) {
            super(pageName);
        }

        @Override
        public void createControl(Composite parent) {
            Label label;
            Text text;
            Composite composite = createComposite(parent);
            createLabel(composite, CommonMessages.element);
            element = createCombo(composite, elementTypes, false);
            for (int i = 0; i < maxTextFields; i++) {
                label = createLabel(composite, "");
                labelList.add(label);
                if (i == 1) {
                    contextType = createCombo(composite, CONTEXT_TYPES, false);
                    textList.add (null);
                    specifyUnit = createButton(composite, CommonMessages.useUnitName);
                }
                else {
                    text = createTextField(composite, "");
                    textList.add(text);
                    if (i == 2) {
                        specifyPattern = createButton(composite, CommonMessages.usePattern);
                    }
                }
            }
            element.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent arg0) {
                    toggleFields(true);
                }
            });
            specifyUnit.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent arg0) {
                    toggleFields(false);
                }
            });
            specifyPattern.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent arg0) {
                    toggleFields(false);
                }
            });
            
            initControl();
            toggleFields(false);
            setControl(composite);
        }

        protected void initControl () {
            if (eObject == null) {
                element.select(CONTEXT);
                PersistenceContextRef contextRef = (PersistenceContextRef)section.getSelectedObject();
                if (contextRef == null) {
                    element.setEnabled(false);
                }
            }
            else {
                if (JAXBElement.class.isInstance(eObject)) {
                    eObject = ((JAXBElement)eObject).getValue();
                    PersistenceContextRef contextRef = (PersistenceContextRef)eObject;
                    textList.get(0).setText(contextRef .getPersistenceContextRefName());
                    contextType.setText(contextRef .getPersistenceContextType().value());
                    if (contextRef .getPersistenceUnitName() != null)
                        textList.get(2).setText(contextRef .getPersistenceUnitName());
                    if (contextRef .getPattern() != null) {
                        specifyPattern.setSelection(true);
                        textList.get(3).setText(contextRef.getPattern().getName());
                        if (contextRef .getPattern().getGroupId() != null)
                            textList.get(4).setText(contextRef .getPattern().getGroupId());
                        if (contextRef .getPattern().getArtifactId() != null)
                            textList.get(5).setText(contextRef .getPattern().getArtifactId());
                        if (contextRef .getPattern().getVersion() != null)
                            textList.get(6).setText(contextRef .getPattern().getVersion());
                        if (contextRef .getPattern().getModule() != null)
                            textList.get(7).setText(contextRef .getPattern().getModule());
                    }
                    element.select(CONTEXT);
                }
                else if (Property.class.isInstance(eObject)) {
                    textList.get(0).setText(((Property)eObject).getKey());
                    textList.get(2).setText(((Property)eObject).getValue());
                    element.select(PROPERTY);
                }
                element.setEnabled(false);
            }
        }
        
        protected void toggleFields (boolean clearFields) {
            if (element.getText().equals(elementTypes[CONTEXT])) {
                labelList.get(0).setText(CommonMessages.contextName);
                labelList.get(2).setText(CommonMessages.unitName);
                textList.get(2).setEnabled(specifyUnit.getSelection());
                labelList.get(1).setVisible(true);
                contextType.setVisible(true);    
                specifyUnit.setVisible(true);
                specifyPattern.setVisible(true);
            }
            else {
                labelList.get(0).setText(CommonMessages.name);
                labelList.get(2).setText(CommonMessages.value);
                textList.get(2).setEnabled(true);
                labelList.get(1).setVisible(false);
                contextType.setVisible(false);
                specifyUnit.setVisible(false);
                specifyPattern.setVisible(false);
            }
            labelList.get(1).setText(CommonMessages.type);
            labelList.get(3).setText(CommonMessages.name);
            labelList.get(4).setText(CommonMessages.groupId);
            labelList.get(5).setText(CommonMessages.artifactId);
            labelList.get(6).setText(CommonMessages.version);
            labelList.get(7).setText(CommonMessages.moduleId);
            for (int i = 3; i < maxTextFields; i++) {
                labelList.get(i).setVisible(element.getText().equals(elementTypes[CONTEXT]));
                textList.get(i).setVisible(element.getText().equals(elementTypes[CONTEXT]));
                textList.get(i).setEnabled(specifyPattern.getSelection());
                if (clearFields == true) {
                    textList.get(i).setText("");
                }
            }
        }

        public String getWizardPageTitle() {
            return CommonMessages.wizardPageTitle_PersContextRef;
        }

        public String getWizardPageDescription() {
            return CommonMessages.wizardPageDescription_PersContextRef;
        }
    }

    @Override
    public boolean performFinish() {
        PersistenceContextRef contextRef;
        if (element.getText().equals(elementTypes[CONTEXT])) {
            if (isEmpty(textList.get(0).getText()) ||
                isEmpty(textList.get(2).getText()) && isEmpty(textList.get(3).getText())) {
                return false;
            }
            contextRef = (PersistenceContextRef)eObject;
            ObjectFactory objectFactory = new ObjectFactory();
            if (contextRef == null) {
                contextRef = (PersistenceContextRef)getEFactory().create(PersistenceContextRef.class);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



