Search in sources :

Example 66 with Connection

use of org.talend.core.model.metadata.builder.connection.Connection in project tdi-studio-se by Talend.

the class QueryTypeController method createComboCommand.

/*
     * (non-Javadoc)
     * 
     * @see
     * org.talend.designer.core.ui.editor.properties.controllers.AbstractRepositoryController#createComboCommand(org
     * .eclipse.swt.custom.CCombo)
     */
@Override
protected Command createComboCommand(CCombo combo) {
    String paramName = (String) combo.getData(PARAMETER_NAME);
    IElementParameter param = elem.getElementParameter(paramName);
    IElementParameter switchParam = elem.getElementParameter(EParameterName.REPOSITORY_ALLOW_AUTO_SWITCH.getName());
    String name = param.getName();
    String value = combo.getText();
    for (int j = 0; j < param.getListItemsValue().length; j++) {
        if (combo.getText().equals(param.getListItemsDisplayName()[j])) {
            value = (String) param.getListItemsValue()[j];
        }
    }
    if (name.equals(EParameterName.QUERYSTORE_TYPE.getName())) {
        if (elem instanceof Node) {
            String querySelected;
            Query repositoryQuery = null;
            // Map<String, Query> repositoryQueryStoreMap = this.dynamicProperty.getRepositoryQueryStoreMap();
            IElementParameter repositoryParam = param.getParentParameter().getChildParameters().get(EParameterName.REPOSITORY_QUERYSTORE_TYPE.getName());
            querySelected = (String) repositoryParam.getValue();
            /* value can be devided means the value like "connectionid - label" */
            String[] keySplitValues = querySelected.toString().split(" - ");
            if (keySplitValues.length > 1) {
                String connectionId = querySelected.split(" - ")[0];
                String queryLabel = querySelected.split(" - ")[1];
                IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
                Item item = null;
                try {
                    IRepositoryViewObject repobj = factory.getLastVersion(connectionId);
                    if (repobj != null) {
                        Property property = repobj.getProperty();
                        if (property != null) {
                            item = property.getItem();
                        }
                    }
                } catch (PersistenceException e) {
                    ExceptionHandler.process(e);
                }
                if (item != null && item instanceof DatabaseConnectionItem) {
                    Connection conn = ((DatabaseConnectionItem) item).getConnection();
                    if (conn instanceof DatabaseConnection) {
                        DatabaseConnection dbconn = (DatabaseConnection) conn;
                        QueriesConnection queryConnection = dbconn.getQueries();
                        for (Query query : queryConnection.getQuery()) {
                            if (query.getLabel().equals(queryLabel)) {
                                repositoryQuery = query;
                                break;
                            }
                        }
                    }
                }
            }
            if (switchParam != null) {
                switchParam.setValue(Boolean.FALSE);
            }
            if (repositoryQuery != null) {
                return new RepositoryChangeQueryCommand(elem, repositoryQuery, name, value);
            } else {
                return new PropertyChangeCommand(elem, name, value);
            }
        }
    }
    return null;
}
Also used : QueriesConnection(org.talend.core.model.metadata.builder.connection.QueriesConnection) Query(org.talend.core.model.metadata.builder.connection.Query) Node(org.talend.designer.core.ui.editor.nodes.Node) INode(org.talend.core.model.process.INode) RepositoryNode(org.talend.repository.model.RepositoryNode) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) IConnection(org.talend.core.model.process.IConnection) Connection(org.talend.core.model.metadata.builder.connection.Connection) QueriesConnection(org.talend.core.model.metadata.builder.connection.QueriesConnection) DatabaseConnectionItem(org.talend.core.model.properties.DatabaseConnectionItem) Item(org.talend.core.model.properties.Item) DatabaseConnectionItem(org.talend.core.model.properties.DatabaseConnectionItem) ConnectionItem(org.talend.core.model.properties.ConnectionItem) PropertyChangeCommand(org.talend.designer.core.ui.editor.cmd.PropertyChangeCommand) RepositoryChangeQueryCommand(org.talend.designer.core.ui.editor.cmd.RepositoryChangeQueryCommand) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) PersistenceException(org.talend.commons.exception.PersistenceException) IElementParameter(org.talend.core.model.process.IElementParameter) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) IDynamicProperty(org.talend.core.ui.properties.tab.IDynamicProperty) Property(org.talend.core.model.properties.Property) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory)

Example 67 with Connection

use of org.talend.core.model.metadata.builder.connection.Connection in project tdi-studio-se by Talend.

the class PropertyTypeController method initCDC.

private void initCDC(CompoundCommand cc, ConnectionItem originalConnectionItem) {
    if (!(elem instanceof Node)) {
        return;
    }
    Node node = (Node) elem;
    // ConnectionItem originalConnectionItem = repositoryConnectionItem;
    ConnectionItem connectionItem = originalConnectionItem;
    Connection originalConnection = connectionItem.getConnection();
    Connection connection = connectionItem.getConnection();
    if (node.getComponent().getName().contains("CDC")) {
        // to replace by a flag CDC in component? //$NON-NLS-1$
        if (originalConnectionItem instanceof DatabaseConnectionItem) {
            final DatabaseConnection databaseConnection = (DatabaseConnection) connection;
            CDCConnection cdcConn = databaseConnection.getCdcConns();
            if (cdcConn != null) {
                EList cdcTypes = cdcConn.getCdcTypes();
                if (cdcTypes != null && !cdcTypes.isEmpty()) {
                    CDCType cdcType = (CDCType) cdcTypes.get(0);
                    // replace property by CDC property.
                    String propertyId = cdcType.getLinkDB();
                    try {
                        IRepositoryViewObject object = ProxyRepositoryFactory.getInstance().getLastVersion(propertyId);
                        if (object != null) {
                            if (object.getProperty().getItem() instanceof DatabaseConnectionItem) {
                                DatabaseConnectionItem dbConnItem = (DatabaseConnectionItem) object.getProperty().getItem();
                                // replace connection by CDC connection
                                connectionItem = dbConnItem;
                                connection = dbConnItem.getConnection();
                            }
                        }
                    } catch (PersistenceException e) {
                        ExceptionHandler.process(e);
                    }
                    // set cdc type mode.
                    IElementParameter logModeParam = node.getElementParameter(EParameterName.CDC_TYPE_MODE.getName());
                    if (logModeParam != null) {
                        String cdcTypeMode = ((DatabaseConnection) originalConnection).getCdcTypeMode();
                        Command logModeCmd = new PropertyChangeCommand(node, EParameterName.CDC_TYPE_MODE.getName(), CDCTypeMode.LOG_MODE.getName().equals(cdcTypeMode));
                        cc.add(logModeCmd);
                    }
                    // set lib for as400 so far.
                    //$NON-NLS-1$
                    final String name = "SOURCE_LIB";
                    IElementParameter libParam = node.getElementParameter(name);
                    if (libParam != null) {
                        Object propValue;
                        if (connection.isContextMode() && ContextParameterUtils.isContainContextParam(databaseConnection.getSID())) {
                            propValue = databaseConnection.getSID();
                        } else {
                            propValue = TalendTextUtils.addQuotes(databaseConnection.getSID());
                        }
                        Command libSettingCmd = new PropertyChangeCommand(node, name, propValue);
                        cc.add(libSettingCmd);
                    }
                }
            }
        }
    }
}
Also used : DatabaseConnectionItem(org.talend.core.model.properties.DatabaseConnectionItem) ConnectionItem(org.talend.core.model.properties.ConnectionItem) Node(org.talend.designer.core.ui.editor.nodes.Node) INode(org.talend.core.model.process.INode) RepositoryNode(org.talend.repository.model.RepositoryNode) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) CDCConnection(org.talend.core.model.metadata.builder.connection.CDCConnection) Connection(org.talend.core.model.metadata.builder.connection.Connection) CDCConnection(org.talend.core.model.metadata.builder.connection.CDCConnection) DatabaseConnectionItem(org.talend.core.model.properties.DatabaseConnectionItem) EList(org.eclipse.emf.common.util.EList) PropertyChangeCommand(org.talend.designer.core.ui.editor.cmd.PropertyChangeCommand) CompoundCommand(org.eclipse.gef.commands.CompoundCommand) Command(org.eclipse.gef.commands.Command) PropertyChangeCommand(org.talend.designer.core.ui.editor.cmd.PropertyChangeCommand) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) PersistenceException(org.talend.commons.exception.PersistenceException) IElementParameter(org.talend.core.model.process.IElementParameter) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) CDCType(org.talend.core.model.metadata.builder.connection.CDCType)

Example 68 with Connection

use of org.talend.core.model.metadata.builder.connection.Connection in project tdi-studio-se by Talend.

the class AbstractPreferenceComposite method updateContextValue.

protected void updateContextValue(boolean update) {
    if (!update) {
        return;
    }
    IElementParameter proElement = elem.getElementParameter(EParameterName.PROPERTY_TYPE.getName()).getChildParameters().get(EParameterName.PROPERTY_TYPE.getName());
    Object value = proElement.getValue();
    if (value instanceof String && ((String) value).equalsIgnoreCase(EmfComponent.REPOSITORY)) {
        String id = (String) elem.getElementParameter(//$NON-NLS-1$
        EParameterName.PROPERTY_TYPE.getName() + ":" + EParameterName.REPOSITORY_PROPERTY_TYPE.getName()).getValue();
        String propertyType = EParameterName.PROPERTY_TYPE.getName() + ":" + EParameterName.REPOSITORY_PROPERTY_TYPE.getName();
        ConnectionItem connectionItem = UpdateRepositoryUtils.getConnectionItemByItemId(id);
        Connection connection = connectionItem.getConnection();
        ChangeValuesFromRepository command = new ChangeValuesFromRepository(elem, connection, propertyType, id);
        getCommandStack().execute(command);
    }
}
Also used : ChangeValuesFromRepository(org.talend.designer.core.ui.editor.cmd.ChangeValuesFromRepository) ConnectionItem(org.talend.core.model.properties.ConnectionItem) Connection(org.talend.core.model.metadata.builder.connection.Connection) IElementParameter(org.talend.core.model.process.IElementParameter) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject)

Example 69 with Connection

use of org.talend.core.model.metadata.builder.connection.Connection in project tdi-studio-se by Talend.

the class ImplicitContextLoadHelper method getRepositoryTypeLabel.

public static String getRepositoryTypeLabel(ConnectionItem connectionItem) {
    if (connectionItem == null) {
        //$NON-NLS-1$
        return "";
    }
    ERepositoryObjectType repositoryObjectType = ERepositoryObjectType.getItemType(connectionItem);
    String aliasName = repositoryObjectType.getAlias();
    org.talend.core.model.metadata.builder.connection.Connection connection = connectionItem.getConnection();
    if (connection instanceof DatabaseConnection) {
        //$NON-NLS-1$
        String currentDbType = (String) RepositoryToComponentProperty.getValue(connection, "TYPE", null);
        //$NON-NLS-1$ //$NON-NLS-2$
        aliasName += " (" + currentDbType + ")";
    }
    //$NON-NLS-1$
    return aliasName + ":" + connectionItem.getProperty().getLabel();
}
Also used : Connection(org.talend.core.model.metadata.builder.connection.Connection) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType)

Example 70 with Connection

use of org.talend.core.model.metadata.builder.connection.Connection in project tdi-studio-se by Talend.

the class ImplicitContextLoadHelper method loadPropertyTypeFromPreference.

/**
     * DOC hcw Comment method "reloadPropertyType".
     * 
     * @param element
     * @param extraComposite
     * @param languagePrefix
     * @param elementParameter
     */
private static void loadPropertyTypeFromPreference(Element element, ExtraComposite extraComposite, String languagePrefix, IElementParameter elementParameter) {
    String propertyType = (String) getPreferenceValue(languagePrefix, EParameterName.PROPERTY_TYPE, String.class);
    String id = (String) getPreferenceValue(languagePrefix, EParameterName.REPOSITORY_PROPERTY_TYPE, String.class);
    Connection repositoryConnection = null;
    IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
    Item item = null;
    try {
        IRepositoryViewObject repobj = factory.getLastVersion(id);
        if (repobj != null) {
            Property tmpproperty = repobj.getProperty();
            if (tmpproperty != null) {
                item = tmpproperty.getItem();
            }
        }
    } catch (PersistenceException e) {
        ExceptionHandler.process(e);
    }
    if (item != null && item instanceof ConnectionItem) {
        repositoryConnection = ((ConnectionItem) item).getConnection();
    } else {
        repositoryConnection = null;
    }
    ChangeValuesFromRepository cmd1 = new ChangeValuesFromRepository(element, repositoryConnection, getExtraParameterName(EParameterName.PROPERTY_TYPE) + ":" + EParameterName.PROPERTY_TYPE.getName(), //$NON-NLS-1$
    propertyType);
    ChangeValuesFromRepository cmd2 = new ChangeValuesFromRepository(element, repositoryConnection, getExtraParameterName(EParameterName.PROPERTY_TYPE) + ":" + EParameterName.REPOSITORY_PROPERTY_TYPE.getName(), //$NON-NLS-1$
    id);
    AbstractMultiPageTalendEditor part = (AbstractMultiPageTalendEditor) ((IProcess2) element).getEditor();
    if (part instanceof AbstractMultiPageTalendEditor) {
        Object adapter = (part).getTalendEditor().getAdapter(CommandStack.class);
        if (adapter != null) {
            CommandStack commandStack = ((CommandStack) adapter);
            commandStack.execute(cmd1);
            commandStack.execute(cmd2);
        }
    }
}
Also used : ConnectionItem(org.talend.core.model.properties.ConnectionItem) Item(org.talend.core.model.properties.Item) CommandStack(org.eclipse.gef.commands.CommandStack) ChangeValuesFromRepository(org.talend.designer.core.ui.editor.cmd.ChangeValuesFromRepository) ConnectionItem(org.talend.core.model.properties.ConnectionItem) AbstractMultiPageTalendEditor(org.talend.designer.core.ui.AbstractMultiPageTalendEditor) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) Connection(org.talend.core.model.metadata.builder.connection.Connection) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) PersistenceException(org.talend.commons.exception.PersistenceException) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) Property(org.talend.core.model.properties.Property) RepositoryToComponentProperty(org.talend.core.model.metadata.designerproperties.RepositoryToComponentProperty) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory)

Aggregations

Connection (org.talend.core.model.metadata.builder.connection.Connection)74 DatabaseConnection (org.talend.core.model.metadata.builder.connection.DatabaseConnection)42 ConnectionItem (org.talend.core.model.properties.ConnectionItem)39 PersistenceException (org.talend.commons.exception.PersistenceException)28 IElementParameter (org.talend.core.model.process.IElementParameter)27 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)26 IProxyRepositoryFactory (org.talend.repository.model.IProxyRepositoryFactory)20 DatabaseConnectionItem (org.talend.core.model.properties.DatabaseConnectionItem)19 Item (org.talend.core.model.properties.Item)19 ArrayList (java.util.ArrayList)14 IMetadataTable (org.talend.core.model.metadata.IMetadataTable)14 Property (org.talend.core.model.properties.Property)14 ChangeValuesFromRepository (org.talend.designer.core.ui.editor.cmd.ChangeValuesFromRepository)13 QueriesConnection (org.talend.core.model.metadata.builder.connection.QueriesConnection)12 XmlFileConnection (org.talend.core.model.metadata.builder.connection.XmlFileConnection)9 IConnection (org.talend.core.model.process.IConnection)9 IMetadataConnection (org.talend.core.model.metadata.IMetadataConnection)8 IDynamicProperty (org.talend.core.ui.properties.tab.IDynamicProperty)8 List (java.util.List)7 PropertyChangeCommand (org.talend.designer.core.ui.editor.cmd.PropertyChangeCommand)7