/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.compare.ui.wizard; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.viewers.CheckStateChangedEvent; import org.eclipse.jface.viewers.CheckboxTableViewer; import org.eclipse.jface.viewers.ICheckStateListener; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.wizard.WizardPage; 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.teiid.designer.compare.DifferenceReport; import org.teiid.designer.compare.PropertyDifference; import org.teiid.designer.compare.ui.UiConstants; import org.teiid.designer.compare.ui.tree.DifferenceReportsPanel; import org.teiid.designer.ui.common.InternalUiConstants; import org.teiid.designer.ui.common.util.WizardUtil; /** * @since 8.0 */ public class ShowDifferencesPage extends WizardPage implements InternalUiConstants.Widgets, UiConstants, UiConstants.Images { private final IDifferencingWizard owner; private DifferenceReportsPanel pnlDiffReport; // private DifferenceReport drDifferenceReport; private List<DifferenceReport> lstDIfferenceReports; // private String sMessage; // private String sModelName; private boolean bIsVisible; private static final String TITLE = Util.getString("ShowDifferencesPage.title"); //$NON-NLS-1$ private static final String MESSAGE = Util.getString("ShowDifferencesPage.message"); //$NON-NLS-1$ // private static final String TREE_TITLE // = Util.getString("JdbcShowDifferencesPage.treeTitle"); //$NON-NLS-1$ private static final String DIFF_DESCRIPTOR_TITLE = Util.getString("ShowDifferencesPage.diffDescriptorTitle"); //$NON-NLS-1$ public ShowDifferencesPage( final IDifferencingWizard owner ) { super(ShowDifferencesPage.class.getSimpleName(), TITLE, null); this.owner = owner; } /** * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite) * @since 4.0 */ @Override public void createControl( final Composite parent ) { // Create page final Composite pg = new Composite(parent, SWT.NONE); pg.setLayout(new GridLayout()); pg.setLayoutData(new GridData(GridData.FILL_BOTH)); setControl(pg); // Create the Difference Reports Panel final String treeTitle = ""; //$NON-NLS-1$ final String tableTitle = DIFF_DESCRIPTOR_TITLE; final boolean enableProperySelection = true; final boolean showCheckboxes = true; pnlDiffReport = new DifferenceReportsPanel(pg, treeTitle, tableTitle, enableProperySelection, showCheckboxes, true, true); pnlDiffReport.setMessage(""); //$NON-NLS-1$ super.setMessage(MESSAGE); final TableViewer tableViewer = pnlDiffReport.getTableViewer(); if (tableViewer instanceof CheckboxTableViewer) ((CheckboxTableViewer)tableViewer).addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged( final CheckStateChangedEvent theEvent ) { final Object checkedObject = theEvent.getElement(); final boolean isChecked = theEvent.getChecked(); if (checkedObject instanceof PropertyDifference) { final PropertyDifference propDiff = (PropertyDifference)checkedObject; propDiff.setSkip(!isChecked); } } }); } public DifferenceReport getDifferenceReport() { return pnlDiffReport.getDifferenceReport(); } public boolean isVisible() { return bIsVisible; } public void setDifferenceReport( final DifferenceReport drDifferenceReport ) { lstDIfferenceReports = new ArrayList<DifferenceReport>(1); this.lstDIfferenceReports.add(drDifferenceReport); if (pnlDiffReport != null) pnlDiffReport.setDifferenceReports(lstDIfferenceReports); } public void setDifferenceReports( final List<DifferenceReport> lstDIfferenceReports ) { this.lstDIfferenceReports = lstDIfferenceReports; if (pnlDiffReport != null) pnlDiffReport.setDifferenceReports(lstDIfferenceReports); } @Override public void setMessage( final String sMessage ) { // super.setMessage( sMessage ); } public void setModelName( final String sModelName ) { // this.sModelName = sModelName; if (pnlDiffReport != null) pnlDiffReport.setModelName(sModelName); } @Override public void setVisible( final boolean bIsVisible ) { this.bIsVisible = bIsVisible; if (bIsVisible) setDifferenceReports(owner.getDifferenceReports()); validatePage(); super.setVisible(bIsVisible); } private void validatePage() { WizardUtil.setPageComplete(this); } }