/* * DBeaver - Universal Database Manager * Copyright (C) 2010-2017 Serge Rider (serge@jkiss.org) * * 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 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jkiss.dbeaver.tools.transfer.wizard; import org.jkiss.dbeaver.Log; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; import org.jkiss.dbeaver.core.CoreMessages; import org.jkiss.dbeaver.model.DBPEvaluationContext; import org.jkiss.dbeaver.model.DBUtils; import org.jkiss.dbeaver.tools.transfer.IDataTransferProcessor; import org.jkiss.dbeaver.tools.transfer.IDataTransferSettings; import org.jkiss.dbeaver.ui.DBeaverIcons; import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.dialogs.ActiveWizardPage; import java.util.List; class DataTransferPageFinal extends ActiveWizardPage<DataTransferWizard> { private static final Log log = Log.getLog(DataTransferPageFinal.class); private Table resultTable; private boolean activated = false; DataTransferPageFinal() { super(CoreMessages.data_transfer_wizard_final_name); setTitle(CoreMessages.data_transfer_wizard_final_title); setDescription(CoreMessages.data_transfer_wizard_final_description); setPageComplete(false); } @Override public void createControl(Composite parent) { initializeDialogUnits(parent); Composite composite = new Composite(parent, SWT.NULL); GridLayout gl = new GridLayout(); gl.marginHeight = 0; gl.marginWidth = 0; composite.setLayout(gl); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); { Group tablesGroup = UIUtils.createControlGroup(composite, CoreMessages.data_transfer_wizard_final_group_tables, 3, GridData.FILL_BOTH, 0); resultTable = new Table(tablesGroup, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION); resultTable.setLayoutData(new GridData(GridData.FILL_BOTH)); resultTable.setHeaderVisible(true); resultTable.setLinesVisible(true); UIUtils.createTableColumn(resultTable, SWT.LEFT, CoreMessages.data_transfer_wizard_final_column_source); UIUtils.createTableColumn(resultTable, SWT.LEFT, CoreMessages.data_transfer_wizard_final_column_target); UIUtils.packColumns(resultTable); } setControl(composite); } @Override public void activatePage() { resultTable.removeAll(); DataTransferSettings settings = getWizard().getSettings(); List<DataTransferPipe> dataPipes = settings.getDataPipes(); for (DataTransferPipe pipe : dataPipes) { IDataTransferSettings consumerSettings = settings.getNodeSettings(pipe.getConsumer()); IDataTransferProcessor processor = null; if (settings.getProcessor() != null) { // Processor is optional try { processor = settings.getProcessor().getInstance(); } catch (Throwable e) { log.error("Can't create processor", e); continue; } } pipe.getConsumer().initTransfer( pipe.getProducer().getSourceObject(), consumerSettings, processor, processor == null ? null : settings.getProcessorProperties()); TableItem item = new TableItem(resultTable, SWT.NONE); item.setText(0, DBUtils.getObjectFullName(pipe.getProducer().getSourceObject(), DBPEvaluationContext.UI)); if (settings.getProducer() != null && settings.getProducer().getIcon() != null) { item.setImage(0, DBeaverIcons.getImage(settings.getProducer().getIcon())); } item.setText(1, pipe.getConsumer().getTargetName()); if (settings.getProcessor() != null && settings.getProcessor().getIcon() != null) { item.setImage(1, DBeaverIcons.getImage(settings.getProcessor().getIcon())); } else if (settings.getConsumer() != null && settings.getConsumer().getIcon() != null) { item.setImage(1, DBeaverIcons.getImage(settings.getConsumer().getIcon())); } } activated = true; UIUtils.packColumns(resultTable, true); updatePageCompletion(); } public boolean isActivated() { return activated; } @Override protected boolean determinePageCompletion() { return activated; } }