Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSusan Franklin2008-01-30 00:48:05 +0000
committerSusan Franklin2008-01-30 00:48:05 +0000
commit57870e66ef7fae7685c5eeb2e57effd0d91509ba (patch)
treecb90935909d71a7c12c04601fc47172287cec0d9
parentfbca750fbe5c2be9fd9d0659c1f9b4fc5fefd162 (diff)
downloadrt.equinox.p2-57870e66ef7fae7685c5eeb2e57effd0d91509ba.tar.gz
rt.equinox.p2-57870e66ef7fae7685c5eeb2e57effd0d91509ba.tar.xz
rt.equinox.p2-57870e66ef7fae7685c5eeb2e57effd0d91509ba.zip
Bug 203009 - [prov] [ui] polish up the property pages
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/plugin.properties6
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java5
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUGroup.java (renamed from bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUGroup.java)2
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUImplementationGroup.java1
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java1
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUPropertiesGroup.java (renamed from bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUPropertiesGroup.java)6
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties5
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.sdk/plugin.properties7
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.sdk/plugin.xml28
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java15
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/IUPropertyPage.java (renamed from bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUPropertyPage.java)33
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/StructuredIUGroup.java14
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties16
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AvailableIUGroup.java11
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUCopyrightPropertyPage.java43
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUGeneralInfoPropertyPage.java151
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IULicensePropertyPage.java43
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/InstalledIUGroup.java9
-rw-r--r--bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java2
19 files changed, 343 insertions, 55 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/plugin.properties b/bundles/org.eclipse.equinox.p2.ui.admin/plugin.properties
index 92c0d0098..674a59058 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/plugin.properties
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/plugin.properties
@@ -20,7 +20,7 @@ MetadataRepositories.name=Metadata Repositories
ArtifactRepositories.name=Artifact Repositories
Profiles.name=Profiles
Provisioning.title=Provisioning
-Profile.name=Profile
-IU.name=Installable Unit
+Profile.name=Profile Admin Info
+IU.name=IU Admin Info
InstalledIU.name=IU Profile Properties
-Repository.name=Repository \ No newline at end of file
+Repository.name=Repository Admin Info \ No newline at end of file
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java
index 18d865461..5c34d1757 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java
@@ -78,6 +78,11 @@ public class ProvAdminUIMessages extends NLS {
public static String IUGroup_Version;
public static String IUProfilePropertiesGroup_InvalidProfileID;
+ public static String IUPropertiesGroup_CopyrightProviderLabel;
+ public static String IUPropertiesGroup_DescriptionPropertyLabel;
+ public static String IUPropertiesGroup_LicenseProviderLabel;
+ public static String IUPropertiesGroup_NamePropertyLabel;
+ public static String IUPropertiesGroup_ProviderPropertyLabel;
public static String No_Property_Item_Selected;
public static String ProfileGroup_Browse;
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUGroup.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUGroup.java
index 734343689..2740a4742 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUGroup.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.p2.ui.dialogs;
+package org.eclipse.equinox.internal.p2.ui.admin.dialogs;
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.p2.ui.ProvUI;
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUImplementationGroup.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUImplementationGroup.java
index 0cdfc99e2..910d54af5 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUImplementationGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUImplementationGroup.java
@@ -16,7 +16,6 @@ import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIMessages;
import org.eclipse.equinox.p2.metadata.*;
import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription;
import org.eclipse.equinox.p2.ui.admin.ProvAdminUIActivator;
-import org.eclipse.equinox.p2.ui.dialogs.IUGroup;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java
index b37e3eb6f..7d69c4cdd 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUProfilePropertiesGroup.java
@@ -15,7 +15,6 @@ import org.eclipse.equinox.p2.core.ProvisionException;
import org.eclipse.equinox.p2.engine.Profile;
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.p2.ui.ProvUI;
-import org.eclipse.equinox.p2.ui.dialogs.IUGroup;
import org.eclipse.equinox.p2.ui.model.InstalledIUElement;
import org.eclipse.equinox.p2.ui.operations.ProvisioningUtil;
import org.eclipse.osgi.util.NLS;
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUPropertiesGroup.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUPropertiesGroup.java
index a27bf9070..1c3df71f8 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUPropertiesGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/IUPropertiesGroup.java
@@ -8,9 +8,9 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.p2.ui.dialogs;
+package org.eclipse.equinox.internal.p2.ui.admin.dialogs;
-import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIMessages;
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyListener;
@@ -62,7 +62,7 @@ public class IUPropertiesGroup extends IUGroup {
return;
}
String[] propNames = new String[] {IInstallableUnit.PROP_NAME, IInstallableUnit.PROP_DESCRIPTION, IInstallableUnit.PROP_PROVIDER, IInstallableUnit.PROP_COPYRIGHT, IInstallableUnit.PROP_LICENSE};
- String[] userPropNames = new String[] {ProvUIMessages.IUPropertiesGroup_NameProperty, ProvUIMessages.IUPropertiesGroup_DescriptionProperty, ProvUIMessages.IUPropertiesGroup_ProviderProperty, ProvUIMessages.IUPropertiesGroup_CopyrightProperty, ProvUIMessages.IUPropertiesGroup_LicenseProperty};
+ String[] userPropNames = new String[] {ProvAdminUIMessages.IUPropertiesGroup_NamePropertyLabel, ProvAdminUIMessages.IUPropertiesGroup_DescriptionPropertyLabel, ProvAdminUIMessages.IUPropertiesGroup_ProviderPropertyLabel, ProvAdminUIMessages.IUPropertiesGroup_CopyrightProviderLabel, ProvAdminUIMessages.IUPropertiesGroup_LicenseProviderLabel};
for (int i = 0; i < propNames.length; i++) {
TableItem item = new TableItem(propertiesTable, SWT.NULL);
String value = getIU().getProperty(propNames[i]);
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties
index 132ce5e69..fa342a119 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties
@@ -57,6 +57,11 @@ IUGroup_RequiredCapabilities=&Required capabilities:
IUGroup_ProvidedCapabilities=&Provided capabilities:
IUGroup_IU_ID_Required=Must set an IU ID
IUProfilePropertiesGroup_InvalidProfileID=Profile id {0} not valid.
+IUPropertiesGroup_CopyrightProviderLabel=Copyright
+IUPropertiesGroup_DescriptionPropertyLabel=Description
+IUPropertiesGroup_LicenseProviderLabel=License
+IUPropertiesGroup_NamePropertyLabel=Name
+IUPropertiesGroup_ProviderPropertyLabel=Provider
ProfileGroup_ID=Profile &id:
ProfileGroup_Browse=&Browse...
ProfileGroup_Browse2=B&rowse...
diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk/plugin.properties b/bundles/org.eclipse.equinox.p2.ui.sdk/plugin.properties
index ec2ac420c..8b0cf2f1b 100644
--- a/bundles/org.eclipse.equinox.p2.ui.sdk/plugin.properties
+++ b/bundles/org.eclipse.equinox.p2.ui.sdk/plugin.properties
@@ -13,9 +13,10 @@
#
providerName=Eclipse.org
bundleName=Provisioning SDK UI (Incubation)
-Profile.name=Install Location
-IU.name=Feature
-Repository.name=Site
+IU.general=General Information
+IU.license=License Agreement
+IU.copyright=Copyright
+Repository.name=General Information
Update.command=Software Updates (Incubation)...
automaticUpdatesPrefPage = Automatic Updates
provisioningPrefPage = Install/Update
diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk/plugin.xml b/bundles/org.eclipse.equinox.p2.ui.sdk/plugin.xml
index 69035470e..652fb29fc 100644
--- a/bundles/org.eclipse.equinox.p2.ui.sdk/plugin.xml
+++ b/bundles/org.eclipse.equinox.p2.ui.sdk/plugin.xml
@@ -13,16 +13,36 @@
<extension
point="org.eclipse.ui.propertyPages">
<page
- name="%IU.name"
- class="org.eclipse.equinox.p2.ui.dialogs.IUPropertyPage"
- id="org.eclipse.equinox.internal.p2.ui.sdk.IUPropertyPage">
+ name="%IU.copyright"
+ class="org.eclipse.equinox.p2.ui.dialogs.IUCopyrightPropertyPage"
+ id="org.eclipse.equinox.p2.ui.sdk.IUCopyrightPropertyPage">
<enabledWhen>
<adapt
type="org.eclipse.equinox.p2.metadata.IInstallableUnit">
</adapt>
</enabledWhen>
</page>
-
+ <page
+ name="%IU.general"
+ class="org.eclipse.equinox.p2.ui.dialogs.IUGeneralInfoPropertyPage"
+ id="org.eclipse.equinox.p2.ui.sdk.IUGeneralInfoPropertyPage">
+ <enabledWhen>
+ <adapt
+ type="org.eclipse.equinox.p2.metadata.IInstallableUnit">
+ </adapt>
+ </enabledWhen>
+ </page>
+ <page
+ name="%IU.license"
+ class="org.eclipse.equinox.p2.ui.dialogs.IULicensePropertyPage"
+ id="org.eclipse.equinox.p2.ui.sdk.IULicensePropertyPage">
+ <enabledWhen>
+ <adapt
+ type="org.eclipse.equinox.p2.metadata.IInstallableUnit">
+ </adapt>
+ </enabledWhen>
+ </page>
+
<page
name="%Repository.name"
class="org.eclipse.equinox.p2.ui.dialogs.RepositoryPropertyPage"
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java
index b514109f9..0bcd3fe59 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/ProvUIMessages.java
@@ -38,15 +38,20 @@ public class ProvUIMessages extends NLS {
public static String CategoryElementCollector_Uncategorized;
public static String ChooseProfileDialog_DefaultDialogTitle;
public static String InstallDialog_InstallSelectionMessage;
- public static String IUPropertiesGroup_CopyrightProperty;
- public static String IUPropertiesGroup_DescriptionProperty;
- public static String IUPropertiesGroup_LicenseProperty;
+ public static String IUCopyrightPropertyPage_NoCopyright;
public static String IUDetailsLabelProvider_KB;
public static String IUDetailsLabelProvider_Bytes;
public static String IUDetailsLabelProvider_ComputingSize;
public static String IUDetailsLabelProvider_Unknown;
- public static String IUPropertiesGroup_NameProperty;
- public static String IUPropertiesGroup_ProviderProperty;
+ public static String IUGeneralInfoPropertyPage_ContactLabel;
+ public static String IUGeneralInfoPropertyPage_CouldNotOpenBrowser;
+ public static String IUGeneralInfoPropertyPage_DescriptionLabel;
+ public static String IUGeneralInfoPropertyPage_DocumentationLink;
+ public static String IUGeneralInfoPropertyPage_IdentifierLabel;
+ public static String IUGeneralInfoPropertyPage_NameLabel;
+ public static String IUGeneralInfoPropertyPage_ProviderLabel;
+ public static String IUGeneralInfoPropertyPage_VersionLabel;
+ public static String IULicensePropertyPage_NoLicense;
public static String ProfileElement_InvalidProfile;
public static String ProfileModificationWizardPage_ProfileNotFound;
// utility error messages
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUPropertyPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/IUPropertyPage.java
index 460f8d890..0ae86e9bc 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUPropertyPage.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/IUPropertyPage.java
@@ -8,15 +8,15 @@
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
-package org.eclipse.equinox.p2.ui.dialogs;
+package org.eclipse.equinox.internal.p2.ui.dialogs;
import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.p2.ui.ProvUI;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.graphics.FontMetrics;
+import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.widgets.*;
import org.eclipse.ui.dialogs.PropertyPage;
@@ -25,26 +25,29 @@ import org.eclipse.ui.dialogs.PropertyPage;
*
* @since 3.4
*/
-public class IUPropertyPage extends PropertyPage {
-
- private IUPropertiesGroup iuGroup;
+public abstract class IUPropertyPage extends PropertyPage {
protected Control createContents(Composite parent) {
+ noDefaultAndApplyButton();
IInstallableUnit iu = (IInstallableUnit) ProvUI.getAdapter(getElement(), IInstallableUnit.class);
+ Control control;
if (iu == null) {
Label label = new Label(parent, SWT.DEFAULT);
label.setText(ProvUIMessages.IUPropertyPage_NoIUSelected);
+ control = label;
}
- iuGroup = new IUPropertiesGroup(parent, iu, new ModifyListener() {
- public void modifyText(ModifyEvent event) {
- // not editable
- }
- });
- Dialog.applyDialogFont(iuGroup.getComposite());
- return iuGroup.getComposite();
+ control = createIUPage(parent, iu);
+ Dialog.applyDialogFont(parent);
+ return control;
}
- public boolean performOk() {
- return true;
+ protected int computeWidthLimit(Control control, int nchars) {
+ GC gc = new GC(control);
+ gc.setFont(control.getFont());
+ FontMetrics fontMetrics = gc.getFontMetrics();
+ gc.dispose();
+ return Dialog.convertWidthInCharsToPixels(fontMetrics, nchars);
}
+
+ protected abstract Control createIUPage(Composite parent, IInstallableUnit iu);
}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/StructuredIUGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/StructuredIUGroup.java
index 3bf0b7c92..1e8452086 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/StructuredIUGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/dialogs/StructuredIUGroup.java
@@ -12,6 +12,7 @@ package org.eclipse.equinox.internal.p2.ui.dialogs;
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.equinox.p2.director.ProvisioningContext;
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.p2.ui.ProvUI;
import org.eclipse.equinox.p2.ui.query.IQueryProvider;
@@ -33,6 +34,7 @@ import org.eclipse.swt.widgets.Composite;
public abstract class StructuredIUGroup {
private IQueryProvider queryProvider;
+ private ProvisioningContext context;
private FontMetrics fm;
private StructuredViewer viewer;
private Composite composite;
@@ -45,19 +47,20 @@ public abstract class StructuredIUGroup {
* to retrieve elements in the viewer.
* @param font The font to use for calculating pixel sizes. This font is
* not managed by the receiver.
+ * @param context the ProvisioningContext describing the context for provisioning.
+
*/
- public StructuredIUGroup(final Composite parent, IQueryProvider queryProvider, Font font) {
+ public StructuredIUGroup(final Composite parent, IQueryProvider queryProvider, Font font, ProvisioningContext context) {
this.queryProvider = queryProvider;
+ this.context = context;
// Set up a fontmetrics for calculations
GC gc = new GC(parent);
gc.setFont(font);
fm = gc.getFontMetrics();
gc.dispose();
-
- createGroupComposite(parent);
}
- private void createGroupComposite(Composite parent) {
+ protected void createGroupComposite(Composite parent) {
composite = new Composite(parent, SWT.NONE);
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
composite.setLayoutData(gd);
@@ -99,7 +102,10 @@ public abstract class StructuredIUGroup {
protected IInstallableUnit getIU(Object element) {
return (IInstallableUnit) ProvUI.getAdapter(element, IInstallableUnit.class);
+ }
+ protected ProvisioningContext getProvisioningContext() {
+ return context;
}
protected int convertHorizontalDLUsToPixels(int dlus) {
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties
index c55c1a5e7..a8ca866dc 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/internal/p2/ui/messages.properties
@@ -57,14 +57,22 @@ ProvDropAdapter_InvalidDropTarget=Invalid drop target
ProvDropAdapter_UnsupportedDropOperation=Unsupported drop operation
ProvElementQueryResult_CouldNotInstantiateElement=Could not instantiate UI element class {0}
+IUCopyrightPropertyPage_NoCopyright=No copyright information has been provided.
IUPropertyPage_NoIUSelected=There was nothing selected to show in the properties.
IUDetailsLabelProvider_KB={0} KB
IUDetailsLabelProvider_Bytes={0} Bytes
IUDetailsLabelProvider_ComputingSize=Computing size...
IUDetailsLabelProvider_Unknown=Unknown
-IUPropertiesGroup_NameProperty=Name
-IUPropertiesGroup_ProviderProperty=Provider
-IUPropertiesGroup_LicenseProperty=License
+IUGeneralInfoPropertyPage_ContactLabel=Contact:
+IUGeneralInfoPropertyPage_CouldNotOpenBrowser=Could not open the web browser.
+IUGeneralInfoPropertyPage_DescriptionLabel=Description
+IUGeneralInfoPropertyPage_DocumentationLink=Documentation is available:
+IUGeneralInfoPropertyPage_IdentifierLabel=Identifier:
+IUGeneralInfoPropertyPage_NameLabel=Name:
+IUGeneralInfoPropertyPage_ProviderLabel=Provider:
+IUGeneralInfoPropertyPage_VersionLabel=Version:
+IULicensePropertyPage_NoLicense=No license information has been provided.
+
RepositoryPropertyPage_DescriptionFieldLabel=Description:
RepositoryPropertyPage_NoRepoSelected=There was no repository selected
RepositoryPropertyPage_NameFieldLabel=Name:
@@ -101,8 +109,6 @@ UpdateAndInstallGroup_Refresh=&Refresh
CategoryElementCollector_Uncategorized=Uncategorized
ChooseProfileDialog_DefaultDialogTitle=Select a profile
InstallDialog_InstallSelectionMessage=Review and confirm that the checked items will be installed.
-IUPropertiesGroup_DescriptionProperty=Description
-IUPropertiesGroup_CopyrightProperty=Copyright
PlatformUpdateTitle = Software Updates
PlatformRestartMessage = You will need to restart the system for the changes to take effect. \
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AvailableIUGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AvailableIUGroup.java
index 587f42f86..05db67df3 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AvailableIUGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/AvailableIUGroup.java
@@ -36,8 +36,6 @@ import org.eclipse.swt.widgets.*;
*/
public class AvailableIUGroup extends StructuredIUGroup {
- ProvisioningContext context;
-
/**
* Create a group that represents the available IU's.
*
@@ -50,9 +48,8 @@ public class AvailableIUGroup extends StructuredIUGroup {
* including information about which repositories should be used.
*/
public AvailableIUGroup(final Composite parent, IQueryProvider queryProvider, Font font, ProvisioningContext context) {
- // This will evolve into a provisioning context
- super(parent, queryProvider, font);
- this.context = context;
+ super(parent, queryProvider, font, context);
+ this.createGroupComposite(parent);
}
protected StructuredViewer createViewer(Composite parent, IQueryProvider queryProvider) {
@@ -68,7 +65,7 @@ public class AvailableIUGroup extends StructuredIUGroup {
// Now the content.
availableIUViewer.setContentProvider(new AvailableIUContentProvider(queryProvider));
- availableIUViewer.setInput(new MetadataRepositories(context.getMetadataRepositories()));
+ availableIUViewer.setInput(new MetadataRepositories(getProvisioningContext().getMetadataRepositories()));
// Now the presentation, columns before label provider.
setTreeColumns(availableIUViewer.getTree());
@@ -78,7 +75,7 @@ public class AvailableIUGroup extends StructuredIUGroup {
protected void refreshAll() {
// The content provider caches the children unless input changes,
// so a viewer.refresh() is not enough.
- availableIUViewer.setInput(new MetadataRepositories(context.getMetadataRepositories()));
+ availableIUViewer.setInput(new MetadataRepositories(getProvisioningContext().getMetadataRepositories()));
}
};
ProvUIActivator.getDefault().addProvisioningListener(listener);
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUCopyrightPropertyPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUCopyrightPropertyPage.java
new file mode 100644
index 000000000..d65c78223
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUCopyrightPropertyPage.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.equinox.p2.ui.dialogs;
+
+import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.dialogs.IUPropertyPage;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.*;
+
+/**
+ * PropertyPage that shows an IU's properties
+ *
+ * @since 3.4
+ */
+public class IUCopyrightPropertyPage extends IUPropertyPage {
+
+ protected Control createIUPage(Composite parent, IInstallableUnit iu) {
+ String copyrightText = iu.getProperty(IInstallableUnit.PROP_COPYRIGHT);
+ if (copyrightText != null && copyrightText.length() > 0) {
+ Text text = new Text(parent, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.WRAP);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
+ gd.widthHint = computeWidthLimit(text, 80);
+ text.setLayoutData(gd);
+ text.setText(copyrightText);
+ text.setEditable(false);
+ return text;
+ }
+ Label label = new Label(parent, SWT.NULL);
+ label.setText(ProvUIMessages.IUCopyrightPropertyPage_NoCopyright);
+ return label;
+
+ }
+}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUGeneralInfoPropertyPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUGeneralInfoPropertyPage.java
new file mode 100644
index 000000000..444c4acc1
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IUGeneralInfoPropertyPage.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.equinox.p2.ui.dialogs;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.dialogs.IUPropertyPage;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.ui.ProvUI;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.*;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.browser.IWebBrowser;
+import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
+
+/**
+ * PropertyPage that shows an IU's properties
+ *
+ * @since 3.4
+ */
+public class IUGeneralInfoPropertyPage extends IUPropertyPage {
+
+ protected Control createIUPage(Composite parent, IInstallableUnit iu) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ layout.verticalSpacing = 15;
+ composite.setLayout(layout);
+
+ createGeneralSection(composite, iu);
+ createDescriptionSection(composite, iu);
+ createDocumentationSection(composite, iu);
+
+ return composite;
+ }
+
+ private void createGeneralSection(Composite parent, IInstallableUnit iu) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ composite.setLayout(layout);
+ composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ addField(composite, ProvUIMessages.IUGeneralInfoPropertyPage_NameLabel, iu.getProperty(IInstallableUnit.PROP_NAME));
+ addField(composite, ProvUIMessages.IUGeneralInfoPropertyPage_IdentifierLabel, iu.getId());
+ addField(composite, ProvUIMessages.IUGeneralInfoPropertyPage_VersionLabel, iu.getVersion().toString());
+ addField(composite, ProvUIMessages.IUGeneralInfoPropertyPage_ProviderLabel, iu.getProperty(IInstallableUnit.PROP_PROVIDER));
+ addField(composite, ProvUIMessages.IUGeneralInfoPropertyPage_ContactLabel, iu.getProperty(IInstallableUnit.PROP_CONTACT));
+
+ }
+
+ private void createDescriptionSection(Composite parent, IInstallableUnit iu) {
+ String description = iu.getProperty(IInstallableUnit.PROP_DESCRIPTION);
+ if (description != null && description.length() > 0) {
+ Group group = new Group(parent, SWT.NONE);
+ group.setText(ProvUIMessages.IUGeneralInfoPropertyPage_DescriptionLabel);
+ group.setLayout(new GridLayout());
+ group.setLayoutData(new GridData(GridData.FILL_BOTH));
+
+ Text text = new Text(group, SWT.MULTI | SWT.WRAP);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
+ gd.widthHint = computeWidthLimit(text, 80);
+ gd.heightHint = 200;
+ text.setEditable(false);
+ text.setText(description);
+ text.setLayoutData(gd);
+ }
+
+ }
+
+ private void createDocumentationSection(Composite parent, IInstallableUnit iu) {
+ String docURL = iu.getProperty(IInstallableUnit.PROP_DOC_URL);
+ if (docURL != null && docURL.length() > 0) {
+ final URL url;
+ try {
+ url = new URL(docURL);
+ } catch (MalformedURLException e) {
+ return;
+ }
+ String filename = (url != null) ? url.getFile() : null;
+ if (filename != null & (filename.endsWith(".htm") || filename.endsWith(".html"))) { //$NON-NLS-1$ //$NON-NLS-2$
+ // create some space
+ new Label(parent, SWT.NONE);
+ // Now create a link to the documentation
+ Label label = new Label(parent, SWT.NONE);
+ label.setText(ProvUIMessages.IUGeneralInfoPropertyPage_DocumentationLink);
+ Link link = new Link(parent, SWT.LEFT | SWT.WRAP);
+ link.setText(NLS.bind("<a>{0}</a>", url.toExternalForm())); //$NON-NLS-1$
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
+ gd.widthHint = computeWidthLimit(link, 80);
+ link.setLayoutData(gd);
+ link.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ showURL(url);
+ }
+ });
+ }
+ }
+ }
+
+ private void addField(Composite parent, String property, String value) {
+
+ if (value != null && value.length() > 0) {
+ Label label = new Label(parent, SWT.NONE);
+ label.setText(property);
+
+ label = new Label(parent, SWT.NONE);
+ label.setText(getEscapedString(value));
+ }
+ }
+
+ private String getEscapedString(String value) {
+ StringBuffer result = new StringBuffer(value.length() + 10);
+ for (int i = 0; i < value.length(); ++i) {
+ char c = value.charAt(i);
+ if ('&' == c) {
+ result.append("&&"); //$NON-NLS-1$
+ } else {
+ result.append(c);
+ }
+ }
+ return result.toString();
+ }
+
+ void showURL(URL url) {
+ IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport();
+ try {
+ IWebBrowser browser = support.getExternalBrowser();
+ browser.openURL(url);
+ } catch (PartInitException e) {
+ ProvUI.handleException(e, ProvUIMessages.IUGeneralInfoPropertyPage_CouldNotOpenBrowser);
+ }
+ }
+}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IULicensePropertyPage.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IULicensePropertyPage.java
new file mode 100644
index 000000000..5da8a6a80
--- /dev/null
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/IULicensePropertyPage.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.equinox.p2.ui.dialogs;
+
+import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.dialogs.IUPropertyPage;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.*;
+
+/**
+ * PropertyPage that shows an IU's properties
+ *
+ * @since 3.4
+ */
+public class IULicensePropertyPage extends IUPropertyPage {
+
+ protected Control createIUPage(Composite parent, IInstallableUnit iu) {
+ String licenseText = iu.getProperty(IInstallableUnit.PROP_LICENSE);
+ if (licenseText != null && licenseText.length() > 0) {
+ Text text = new Text(parent, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.WRAP);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_BEGINNING);
+ gd.widthHint = computeWidthLimit(text, 80);
+ text.setLayoutData(gd);
+ text.setText(licenseText);
+ text.setEditable(false);
+ return text;
+ }
+ Label label = new Label(parent, SWT.NULL);
+ label.setText(ProvUIMessages.IULicensePropertyPage_NoLicense);
+ return label;
+
+ }
+}
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/InstalledIUGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/InstalledIUGroup.java
index 6d6f7f833..85d649707 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/InstalledIUGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/InstalledIUGroup.java
@@ -13,6 +13,7 @@ package org.eclipse.equinox.p2.ui.dialogs;
import org.eclipse.equinox.internal.p2.ui.ProvUIActivator;
import org.eclipse.equinox.internal.p2.ui.dialogs.StructuredIUGroup;
import org.eclipse.equinox.internal.p2.ui.viewers.IUDetailsLabelProvider;
+import org.eclipse.equinox.p2.director.ProvisioningContext;
import org.eclipse.equinox.p2.ui.ProvUI;
import org.eclipse.equinox.p2.ui.model.ProfileElement;
import org.eclipse.equinox.p2.ui.query.IQueryProvider;
@@ -44,11 +45,15 @@ public class InstalledIUGroup extends StructuredIUGroup {
* @param profileId the id of the profile whose content is being shown.
* @param font The font to use for calculating pixel sizes. This font is
* not managed by the receiver.
+ * @param context the ProvisioningContext describing the context for provisioning,
+ * including information about which repositories should be used.
+
*/
- public InstalledIUGroup(final Composite parent, IQueryProvider queryProvider, Font font, String profileId) {
+ public InstalledIUGroup(final Composite parent, IQueryProvider queryProvider, Font font, ProvisioningContext context, String profileId) {
// This will evolve into a provisioning context
- super(parent, queryProvider, font);
+ super(parent, queryProvider, font, context);
this.profileId = profileId;
+ this.createGroupComposite(parent);
}
protected StructuredViewer createViewer(Composite parent, IQueryProvider queryProvider) {
diff --git a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java
index e640d8b49..2286279ba 100644
--- a/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java
+++ b/bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/dialogs/UpdateAndInstallGroup.java
@@ -172,7 +172,7 @@ public class UpdateAndInstallGroup {
composite.setLayout(layout);
// Table of installed IU's
- installedIUGroup = new InstalledIUGroup(composite, queryProvider, JFaceResources.getDialogFont(), profileId);
+ installedIUGroup = new InstalledIUGroup(composite, queryProvider, JFaceResources.getDialogFont(), new ProvisioningContext(), profileId);
// Vertical buttons
Composite buttonBar = (Composite) createInstalledIUsVerticalButtonBar(composite, queryProvider);

Back to the top