/** * load the Element's parameters to EMF Model * * @param elemParam * @param paType */ public static void loadElementParameters( Element elemParam, ParametersType paType, String repParamName) { if (paType == null || elemParam == null) { return; } EList listParamType = paType.getElementParameter(); ElementParameterType repositoryParam = null; if (repParamName != null && !repParamName.equals("")) { repositoryParam = findElementParameterType(paType, repParamName); } else { repositoryParam = findElementParameterType( paType, EParameterName.PROPERTY_TYPE.getName() + ":" + EParameterName.PROPERTY_TYPE.getName()); } IElementParameter statsDBType = null; IElementParameter implicitDBType = null; IElementParameter statsDBVersion = null; IElementParameter implicitDBVersion = null; for (int j = 0; j < listParamType.size(); j++) { ElementParameterType pType = (ElementParameterType) listParamType.get(j); if (pType != null) { String pTypeName = pType.getName(); if (pTypeName != null && !"".equals(pTypeName)) { IElementParameter param = elemParam.getElementParameter(pTypeName); if (pTypeName.equals("DB_TYPE")) { // $NON-NLS-1$ statsDBType = param; } else if (pTypeName.equals("DB_VERSION")) { // $NON-NLS-1$ statsDBVersion = param; } else if (pTypeName.equals("DB_TYPE_IMPLICIT_CONTEXT")) { // $NON-NLS-1$ implicitDBType = param; } else if (pTypeName.equals("DB_VERSION_IMPLICIT_CONTEXT")) { // $NON-NLS-1$ implicitDBVersion = param; } if (param != null) { String name = param.getName(); param.setContextMode(pType.isContextMode()); if (param.isReadOnly() && !(EParameterName.UNIQUE_NAME.getName().equals(name) || EParameterName.VERSION.getName().equals(name))) { continue; // if the parameter is read only, don't load // it (this will prevent to overwrite the // value) } String value = null; if ("STATANDLOG_USE_PROJECT_SETTINGS".equals(name) // $NON-NLS-1$ || "IMPLICITCONTEXT_USE_PROJECT_SETTINGS".equals(name)) { // $NON-NLS-1$ Object value2 = param.getValue(); if (value2 != null) { value = value2.toString(); } } else { value = pType.getValue(); } if (param.getFieldType().equals(EParameterFieldType.CHECK) || param.getFieldType().equals(EParameterFieldType.RADIO)) { if (Boolean.FALSE.toString().equalsIgnoreCase(value) || Boolean.TRUE.toString().equalsIgnoreCase(value) || !pType.isContextMode()) { Boolean boolean1 = new Boolean(value); elemParam.setPropertyValue(pTypeName, boolean1); } else { elemParam.setPropertyValue(pTypeName, value); } // if (EParameterName.ACTIVATE.getName().equals(param.getName())) { // if ((elemParam instanceof Node) && !boolean1) { // ((Node) elemParam).setDummy(!boolean1); // } // } } else if (param.getFieldType().equals(EParameterFieldType.CLOSED_LIST)) { boolean valueSet = false; if (!ArrayUtils.contains(param.getListItemsValue(), value)) { if (ArrayUtils.contains(param.getListItemsDisplayName(), value)) { valueSet = true; int index = ArrayUtils.indexOf(param.getListItemsDisplayName(), value); if (index > -1) { elemParam.setPropertyValue(pTypeName, param.getListItemsValue()[index]); } } else if (value.equals("") && name != null && (name.equals("LOAD_NEW_VARIABLE") || name.equals("NOT_LOAD_OLD_VARIABLE"))) { valueSet = true; elemParam.setPropertyValue(pTypeName, param.getListItemsValue()[1]); } } if (!valueSet) { elemParam.setPropertyValue(pTypeName, value); } } else if (param.getFieldType().equals(EParameterFieldType.TABLE)) { List<Map<String, Object>> tableValues = new ArrayList<Map<String, Object>>(); String[] codeList = param.getListItemsDisplayCodeName(); Map<String, Object> lineValues = null; for (ElementValueType elementValue : (List<ElementValueType>) pType.getElementValue()) { boolean found = false; int length = codeList.length; if (length > 0) { for (int i = 0; i < length && !found; i++) { if (codeList[i].equals(elementValue.getElementRef())) { found = true; } } } IElementParameter tmpParam = null; for (Object o : param.getListItemsValue()) { if (o instanceof IElementParameter) { IElementParameter tableParam = (IElementParameter) o; if (tableParam.getName().equals(elementValue.getElementRef())) { tmpParam = tableParam; break; } } } if (found) { if ((lineValues == null) || (lineValues.get(elementValue.getElementRef()) != null)) { lineValues = new HashMap<String, Object>(); tableValues.add(lineValues); } String elemValue = elementValue.getValue(); if (tmpParam != null && EParameterFieldType.PASSWORD.equals(tmpParam.getFieldType())) { elemValue = elementValue.getRawValue(); } lineValues.put(elementValue.getElementRef(), elemValue); if (elementValue.getType() != null) { lineValues.put( elementValue.getElementRef() + IEbcdicConstant.REF_TYPE, elementValue.getType()); } } } elemParam.setPropertyValue(pTypeName, tableValues); } else if (param.getFieldType().equals(EParameterFieldType.PASSWORD)) { param.setValue(pType.getRawValue()); } else if (param.getFieldType().equals(EParameterFieldType.ENCODING_TYPE)) { // fix for bug 2193 boolean setToCustom = false; if (EmfComponent.REPOSITORY.equals( elemParam.getPropertyValue(EParameterName.PROPERTY_TYPE.getName())) && param.getRepositoryValue() != null && param.getRepositoryValue().equals("ENCODING")) { // $NON-NLS-1$ setToCustom = true; } String tempValue = null; IElementParameter iElementParameter = null; Map<String, IElementParameter> childParameters = param.getChildParameters(); if (childParameters != null) { iElementParameter = childParameters.get(EParameterName.ENCODING_TYPE.getName()); if (iElementParameter != null) { tempValue = (String) iElementParameter.getValue(); } } if (tempValue != null && !tempValue.equals(EmfComponent.ENCODING_TYPE_CUSTOM)) { tempValue = tempValue.replaceAll("'", ""); // $NON-NLS-1$ //$NON-NLS-2$ tempValue = tempValue.replaceAll("\"", ""); // $NON-NLS-1$ //$NON-NLS-2$ tempValue = TalendTextUtils.addQuotes(tempValue); if (!tempValue.equals(value)) { setToCustom = true; } } if (iElementParameter != null && setToCustom) { iElementParameter.setValue(EmfComponent.ENCODING_TYPE_CUSTOM); } elemParam.setPropertyValue(pTypeName, value); // end of fix for bug 2193 } else if (!param.getFieldType().equals(EParameterFieldType.SCHEMA_TYPE)) { if (param.getRepositoryValue() != null && !param.getFieldType().equals(EParameterFieldType.PROPERTY_TYPE)) { if (repositoryParam != null && EmfComponent.REPOSITORY.equals(repositoryParam.getValue())) { param.setRepositoryValueUsed(true); } else { param.setRepositoryValueUsed(false); } } elemParam.setPropertyValue(pTypeName, value); } } else if (UpdateTheJobsActionsOnTable.isClear && "CLEAR_TABLE".equals(pTypeName) // $NON-NLS-1$ && "true".equals(pType.getValue()) // $NON-NLS-1$ && "NONE" .equals( elemParam .getElementParameter(Process.TABLE_ACTION) .getValue())) { //$NON-NLS-1$ elemParam.setPropertyValue(Process.TABLE_ACTION, "CLEAR"); // $NON-NLS-1$ UpdateTheJobsActionsOnTable.isClear = false; } } } } // update combo list for dbversion if (statsDBType != null && statsDBVersion != null) { JobSettingVersionUtil.setDbVersion( statsDBVersion, String.valueOf(statsDBType.getValue()), String.valueOf(statsDBVersion.getValue())); } if (implicitDBType != null && implicitDBVersion != null) { JobSettingVersionUtil.setDbVersion( implicitDBVersion, String.valueOf(implicitDBType.getValue()), String.valueOf(implicitDBVersion.getValue())); } }
/* * (non-Javadoc) * * @see * org.talend.designer.core.ui.editor.properties2.editors.AbstractElementPropertySectionController#createControl() */ @Override public Control createControl( final Composite subComposite, final IElementParameter param, final int numInRow, final int nbInRow, final int top, final Control lastControl) { this.curParameter = param; this.paramFieldType = param.getFieldType(); int nbLines = param.getNbLines(); DecoratedField dField = new DecoratedField( subComposite, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.WRAP, new SelectAllTextControlCreator()); if (param.isRequired()) { FieldDecoration decoration = FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED); dField.addFieldDecoration(decoration, SWT.RIGHT | SWT.TOP, false); } Control cLayout = dField.getLayoutControl(); Text text = (Text) dField.getControl(); editionControlHelper.register(param.getName(), text); FormData d = (FormData) text.getLayoutData(); if (getAdditionalHeightSize() != 0) { nbLines += this.getAdditionalHeightSize() / text.getLineHeight(); } d.height = text.getLineHeight() * nbLines; FormData data; text.getParent().setSize(subComposite.getSize().x, text.getLineHeight() * nbLines); cLayout.setBackground(subComposite.getBackground()); // for bug 7580 if (!(text instanceof Text)) { text.setEnabled(!param.isReadOnly()); } else { text.setEditable(!param.isReadOnly()); } IPreferenceStore preferenceStore = CorePlugin.getDefault().getPreferenceStore(); String fontType = preferenceStore.getString(TalendDesignerPrefConstants.MEMO_TEXT_FONT); FontData fontData = new FontData(fontType); Font font = new Font(null, fontData); addResourceDisposeListener(text, font); text.setFont(font); if (elem instanceof Node) { text.setToolTipText(VARIABLE_TOOLTIP + param.getVariableName()); } addDragAndDropTarget(text); CLabel labelLabel = getWidgetFactory().createCLabel(subComposite, param.getDisplayName()); data = new FormData(); if (lastControl != null) { data.left = new FormAttachment(lastControl, 0); } else { data.left = new FormAttachment((((numInRow - 1) * MAX_PERCENT) / nbInRow), 0); } data.top = new FormAttachment(0, top); labelLabel.setLayoutData(data); if (numInRow != 1) { labelLabel.setAlignment(SWT.RIGHT); } // ********************* data = new FormData(); int currentLabelWidth = STANDARD_LABEL_WIDTH; GC gc = new GC(labelLabel); Point labelSize = gc.stringExtent(param.getDisplayName()); gc.dispose(); if ((labelSize.x + ITabbedPropertyConstants.HSPACE) > currentLabelWidth) { currentLabelWidth = labelSize.x + ITabbedPropertyConstants.HSPACE; } if (numInRow == 1) { if (lastControl != null) { data.left = new FormAttachment(lastControl, currentLabelWidth); } else { data.left = new FormAttachment(0, currentLabelWidth); } } else { data.left = new FormAttachment(labelLabel, 0, SWT.RIGHT); } data.right = new FormAttachment((numInRow * MAX_PERCENT) / nbInRow, 0); data.top = new FormAttachment(0, top); cLayout.setLayoutData(data); // ********************** hashCurControls.put(param.getName(), text); Point initialSize = dField.getLayoutControl().computeSize(SWT.DEFAULT, SWT.DEFAULT); dynamicProperty.setCurRowSize(initialSize.y + ITabbedPropertyConstants.VSPACE); return null; }
/* * (non-Javadoc) * * @see * org.talend.designer.core.ui.editor.properties2.editors.AbstractElementPropertySectionController#createControl() */ @Override public Control createControl( final Composite subComposite, final IElementParameter param, final int numInRow, final int nbInRow, final int top, final Control lastControl) { this.curParameter = param; FormData data; Button btnEdit = getWidgetFactory().createButton(subComposite, "", SWT.PUSH); // $NON-NLS-1$ btnEdit.setImage(ImageProvider.getImage(CoreUIPlugin.getImageDescriptor(DOTS_BUTTON))); data = new FormData(); data.left = new FormAttachment(0, 120); data.top = new FormAttachment(0, top); data.height = STANDARD_HEIGHT - 2; btnEdit.setLayoutData(data); btnEdit.setData(NAME, ICON_SELECTION); btnEdit.setData(PARAMETER_NAME, param.getName()); btnEdit.setEnabled(!param.isReadOnly()); btnEdit.addSelectionListener(listenerSelection); DecoratedField dField = new DecoratedField( subComposite, SWT.NONE, new IControlCreator() { @Override public Control createControl(Composite parent, int style) { return new Label(parent, style); } }); // revert btn Button btnRevert = getWidgetFactory() .createButton( subComposite, Messages.getString("IconSelectionController.Revert"), SWT.PUSH); //$NON-NLS-1$ data = new FormData(); data.left = new FormAttachment(btnEdit, 5); data.top = new FormAttachment(0, top); data.height = STANDARD_HEIGHT - 2; btnRevert.setLayoutData(data); btnRevert.setData(NAME, ICON_REVERT); btnRevert.setData(PARAMETER_NAME, param.getName()); btnRevert.setEnabled(!param.isReadOnly()); btnRevert.addSelectionListener(listenerSelection); if (param.isRequired()) { FieldDecoration decoration = FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED); dField.addFieldDecoration(decoration, SWT.RIGHT | SWT.TOP, false); } if (param.isRepositoryValueUsed()) { FieldDecoration decoration = FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL); decoration.setDescription( Messages.getString("FileController.decoration.description")); // $NON-NLS-1$ dField.addFieldDecoration(decoration, SWT.RIGHT | SWT.BOTTOM, false); } Control cLayout = dField.getLayoutControl(); filePathText = (Label) dField.getControl(); String file = (String) elem.getPropertyValue(PARAMETER_NAME); if (file != null) { // ImageData imageData = new ImageData(file); // image = new Image(composite.getShell().getDisplay(), imageData); // filePathText.setImage(image); } CLabel labelLabel = getWidgetFactory().createCLabel(subComposite, param.getDisplayName(), 0); data = new FormData(); if (lastControl != null) { data.left = new FormAttachment(lastControl, 0); } else { data.left = new FormAttachment((((numInRow - 1) * MAX_PERCENT) / nbInRow), 0); } data.top = new FormAttachment(0, top); labelLabel.setLayoutData(data); if (numInRow != 1) { labelLabel.setAlignment(SWT.RIGHT); } // ************************** data = new FormData(); int currentLabelWidth = 50; GC gc = new GC(labelLabel); Point labelSize = gc.stringExtent(param.getDisplayName()); gc.dispose(); if ((labelSize.x + ITabbedPropertyConstants.HSPACE) > currentLabelWidth) { currentLabelWidth = labelSize.x + ITabbedPropertyConstants.HSPACE; } if (numInRow == 1) { if (lastControl != null) { data.left = new FormAttachment(lastControl, currentLabelWidth); } else { data.left = new FormAttachment(0, currentLabelWidth); } } else { data.left = new FormAttachment(labelLabel, 0, SWT.RIGHT); } data.top = new FormAttachment(btnEdit, 0, SWT.CENTER); data.height = 34; data.width = 30; cLayout.setLayoutData(data); Point initialSize = dField.getLayoutControl().computeSize(SWT.DEFAULT, SWT.DEFAULT); dynamicProperty.setCurRowSize(initialSize.y + ITabbedPropertyConstants.VSPACE); return btnEdit; }
/* * (non-Javadoc) * * @see * org.talend.designer.core.ui.editor.properties2.editors.AbstractElementPropertySectionController#createControl() */ @Override public Control createControl( final Composite subComposite, final IElementParameter param, final int numInRow, final int nbInRow, final int top, final Control lastControl) { if (param.getDisplayName().startsWith("!!")) { // $NON-NLS-1$ if (param.getFieldType() == EParameterFieldType.MODULE_LIST) { param.setDisplayName(EParameterName.MODULE_LIST.getDisplayName()); } } DecoratedField dField = new DecoratedField(subComposite, SWT.BORDER, cbCtrl); if (param.isRequired()) { FieldDecoration decoration = FieldDecorationRegistry.getDefault() .getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED); dField.addFieldDecoration(decoration, SWT.RIGHT | SWT.TOP, false); } Control cLayout = dField.getLayoutControl(); CCombo combo = (CCombo) dField.getControl(); combo.setEditable(false); cLayout.setBackground(subComposite.getBackground()); combo.setEnabled(!param.isReadOnly()); combo.addSelectionListener(listenerSelection); if (elem instanceof Node) { combo.setToolTipText(VARIABLE_TOOLTIP + param.getVariableName()); } CLabel labelLabel = getWidgetFactory().createCLabel(subComposite, param.getDisplayName()); FormData data = new FormData(); if (lastControl != null) { data.left = new FormAttachment(lastControl, 0); } else { data.left = new FormAttachment((((numInRow - 1) * MAX_PERCENT) / nbInRow), 0); } data.top = new FormAttachment(0, top); labelLabel.setLayoutData(data); if (numInRow != 1) { labelLabel.setAlignment(SWT.RIGHT); } // ********************* data = new FormData(); int currentLabelWidth = STANDARD_LABEL_WIDTH; GC gc = new GC(labelLabel); Point labelSize = gc.stringExtent(param.getDisplayName()); gc.dispose(); if ((labelSize.x + ITabbedPropertyConstants.HSPACE) > currentLabelWidth) { currentLabelWidth = labelSize.x + ITabbedPropertyConstants.HSPACE; } if (numInRow == 1) { if (lastControl != null) { data.left = new FormAttachment(lastControl, currentLabelWidth); } else { data.left = new FormAttachment(0, currentLabelWidth); } } else { data.left = new FormAttachment(labelLabel, 0, SWT.RIGHT); } data.top = new FormAttachment(0, top); cLayout.setLayoutData(data); Point initialSize = dField.getLayoutControl().computeSize(SWT.DEFAULT, SWT.DEFAULT); Button btnEdit = getWidgetFactory().createButton(subComposite, "", SWT.PUSH); // $NON-NLS-1$ btnEdit.setImage(ImageProvider.getImage(CoreUIPlugin.getImageDescriptor(DOTS_BUTTON))); data = new FormData(); data.left = new FormAttachment(cLayout, 0, SWT.RIGHT); data.right = new FormAttachment( cLayout, ITabbedPropertyConstants.HSPACE + STANDARD_BUTTON_WIDTH, SWT.RIGHT); data.top = new FormAttachment(0, top); data.height = STANDARD_HEIGHT - 2; btnEdit.setLayoutData(data); btnEdit.setData(NAME, MODULE); btnEdit.setData(PARAMETER_NAME, param.getName()); btnEdit.setEnabled(!param.isReadOnly()); btnEdit.addSelectionListener(listenerSelection); // ********************** hashCurControls.put(param.getName(), combo); hashCurControls.put(param.getName() + BUTTON_EDIT, btnEdit); updateData(); // this.dynamicTabbedPropertySection.updateColumnList(null); dynamicProperty.setCurRowSize(initialSize.y + ITabbedPropertyConstants.VSPACE); return cLayout; }