connectivity/com.nokia.carbide.remoteConnections/src/com/nokia/carbide/remoteconnections/wizard/AbstractImportExportPage.java
Initial fixes for bug #10363 (Browse... button behavior)
/*
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/
package com.nokia.carbide.remoteconnections.wizard;
import com.nokia.carbide.remoteconnections.RemoteConnectionsActivator;
import com.nokia.carbide.remoteconnections.Messages;
import com.nokia.carbide.remoteconnections.interfaces.IConnection;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.*;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import java.util.ArrayList;
import java.util.List;
/**
* Abstract superclass of import and export page
*/
public abstract class AbstractImportExportPage extends WizardPage {
protected List<IConnection> connections;
protected Text pathText;
protected Button browseButton;
protected CheckboxTableViewer viewer;
protected static final ImageDescriptor CONNECTION_IMGDESC =
RemoteConnectionsActivator.getImageDescriptor("icons/connection.png"); //$NON-NLS-1$
protected static final Image CONNECTION_IMG = CONNECTION_IMGDESC.createImage();
private static final String UID = ".uid"; //$NON-NLS-1$
public AbstractImportExportPage(String pageName) {
super(pageName);
}
public void createControl(Composite parent) {
initializeDialogUnits(parent);
Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout());
composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
| GridData.HORIZONTAL_ALIGN_FILL));
composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
composite.setFont(parent.getFont());
composite.setData(UID, "ImportExportPage"); //$NON-NLS-1$
setControl(composite);
}
protected void createBrowseGroup(Composite parent, String labelText) {
Composite composite = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.numColumns = 3;
composite.setLayout(layout);
composite.setFont(parent.getFont());
composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL));
Label label = new Label(composite, SWT.NONE);
label.setText(labelText);
label.setFont(parent.getFont());
pathText = new Text(composite, SWT.BORDER);
GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
| GridData.GRAB_HORIZONTAL);
data.widthHint = 250;
pathText.setLayoutData(data);
pathText.setFont(parent.getFont());
pathText.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
setPageComplete(validatePage(true));
}
});
pathText.setData(UID, "pathText"); //$NON-NLS-1$
browseButton = new Button(composite, SWT.PUSH);
browseButton.setText(Messages.getString("AbstractImportExportPage.BrowseButtonLabel")); //$NON-NLS-1$
browseButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
browseButton.setFont(parent.getFont());
browseButton.setData(UID, "browseButton"); //$NON-NLS-1$
setButtonLayoutData(browseButton);
}
protected void createViewerGroup(Composite parent, String labelText) {
Label label = new Label(parent, SWT.NONE);
label.setText(labelText);
viewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
TableViewerColumn connectionColumn = new TableViewerColumn(viewer, SWT.CENTER);
connectionColumn.getColumn().setText(Messages.getString("AbstractImportExportPage.ConnectionColumnLabel")); //$NON-NLS-1$
connectionColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public Image getImage(Object element) {
return CONNECTION_IMG;
}
@Override
public String getText(Object element) {
return ((IConnection) element).getDisplayName();
}
});
TableViewerColumn typeColumn = new TableViewerColumn(viewer, SWT.CENTER);
typeColumn.getColumn().setText(Messages.getString("AbstractImportExportPage.TypeColumnLabel")); //$NON-NLS-1$
typeColumn.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
return ((IConnection) element).getConnectionType().getDisplayName();
}
});
viewer.getControl().setLayoutData(
new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
viewer.setContentProvider(new ArrayContentProvider());
viewer.getTable().setHeaderVisible(true);
viewer.getControl().setData(UID, "viewer"); //$NON-NLS-1$
// Composite buttonComposite = new Composite(parent, SWT.NONE);
// buttonComposite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
// buttonComposite.setLayout(new GridLayout());
// Button checkAllButton = new Button(buttonComposite, SWT.PUSH);
// checkAllButton.setText("Check All");
// setButtonLayoutData(checkAllButton);
// Button checkNoneButton = new Button(buttonComposite, SWT.PUSH);
// checkNoneButton.setText("Uncheck All");
// setButtonLayoutData(checkNoneButton);
}
protected abstract boolean validatePage(boolean validateFile);
public List<IConnection> getSelectedConnections() {
List<IConnection> selectedConnections = new ArrayList<IConnection>();
for (IConnection connection : connections) {
if (viewer.getChecked(connection))
selectedConnections.add(connection);
}
return selectedConnections;
}
}