11
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
1 |
/*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
4 |
* This component and the accompanying materials are made available
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
5 |
* under the terms of "Eclipse Public License v1.0"
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
6 |
* which accompanies this distribution, and is available
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
8 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
9 |
* Initial Contributors:
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
10 |
* Nokia Corporation - initial contribution.
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
11 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
12 |
* Contributors:
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
13 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
14 |
* Description:
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
15 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
16 |
* Abstract import / export page
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
17 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
18 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
19 |
package com.nokia.traceviewer.engine.preferences.wizard;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
20 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
21 |
import org.eclipse.jface.viewers.*;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
22 |
import org.eclipse.jface.wizard.WizardPage;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
23 |
import org.eclipse.swt.SWT;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
24 |
import org.eclipse.swt.events.ModifyEvent;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
25 |
import org.eclipse.swt.events.ModifyListener;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
26 |
import org.eclipse.swt.layout.GridData;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
27 |
import org.eclipse.swt.layout.GridLayout;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
28 |
import org.eclipse.swt.widgets.*;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
29 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
30 |
/**
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
31 |
* Abstract superclass of import and export page
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
32 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
33 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
34 |
public abstract class AbstractImportExportPage extends WizardPage {
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
35 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
36 |
/**
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
37 |
* Path text
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
38 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
39 |
protected Text pathText;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
40 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
41 |
/**
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
42 |
* Browse button
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
43 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
44 |
protected Button browseButton;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
45 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
46 |
/**
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
47 |
* Table viewer
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
48 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
49 |
protected CheckboxTableViewer viewer;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
50 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
51 |
/**
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
52 |
* Constructor
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
53 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
54 |
* @param pageName
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
55 |
* page name
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
56 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
57 |
public AbstractImportExportPage(String pageName) {
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
58 |
super(pageName);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
59 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
60 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
61 |
/*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
62 |
* (non-Javadoc)
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
63 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
64 |
* @see
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
65 |
* org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
66 |
* .Composite)
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
67 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
68 |
public void createControl(Composite parent) {
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
69 |
initializeDialogUnits(parent);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
70 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
71 |
Composite composite = new Composite(parent, SWT.NONE);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
72 |
composite.setLayout(new GridLayout());
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
73 |
composite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
74 |
| GridData.HORIZONTAL_ALIGN_FILL));
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
75 |
composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
76 |
composite.setFont(parent.getFont());
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
77 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
78 |
setControl(composite);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
79 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
80 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
81 |
/**
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
82 |
* Create browse group
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
83 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
84 |
* @param parent
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
85 |
* parent composite
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
86 |
* @param labelText
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
87 |
* label text
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
88 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
89 |
protected void createBrowseGroup(Composite parent, String labelText) {
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
90 |
Composite composite = new Composite(parent, SWT.NONE);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
91 |
GridLayout layout = new GridLayout();
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
92 |
layout.numColumns = 3;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
93 |
composite.setLayout(layout);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
94 |
composite.setFont(parent.getFont());
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
95 |
composite.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
96 |
| GridData.GRAB_HORIZONTAL));
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
97 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
98 |
// Label
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
99 |
Label label = new Label(composite, SWT.NONE);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
100 |
label.setText(labelText);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
101 |
label.setFont(parent.getFont());
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
102 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
103 |
// Path text
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
104 |
pathText = new Text(composite, SWT.BORDER);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
105 |
GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
106 |
| GridData.GRAB_HORIZONTAL);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
107 |
data.widthHint = 250;
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
108 |
pathText.setLayoutData(data);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
109 |
pathText.setFont(parent.getFont());
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
110 |
pathText.addModifyListener(new ModifyListener() {
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
111 |
public void modifyText(ModifyEvent e) {
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
112 |
setPageComplete(validatePage(true));
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
113 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
114 |
});
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
115 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
116 |
// Browse button
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
117 |
browseButton = new Button(composite, SWT.PUSH);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
118 |
browseButton.setText(Messages
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
119 |
.getString("AbstractImportExportPage.BrowseButtonText")); //$NON-NLS-1$
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
120 |
browseButton
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
121 |
.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
122 |
browseButton.setFont(parent.getFont());
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
123 |
setButtonLayoutData(browseButton);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
124 |
}
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
125 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
126 |
/**
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
127 |
* Validates the page
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
128 |
*
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
129 |
* @param validateFile
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
130 |
* file path
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
131 |
* @return true if page is OK, false otherwise
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
132 |
*/
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
133 |
protected abstract boolean validatePage(boolean validateFile);
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
134 |
|
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff
changeset
|
135 |
} |