2 * Copyright (C) 2007-2012 Mathieu Baudier
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.slc
.client
.ui
.dist
.editors
;
18 import java
.util
.List
;
20 import javax
.jcr
.Node
;
21 import javax
.jcr
.NodeIterator
;
22 import javax
.jcr
.RepositoryException
;
23 import javax
.jcr
.Session
;
24 import javax
.jcr
.query
.QueryManager
;
25 import javax
.jcr
.query
.QueryResult
;
26 import javax
.jcr
.query
.qom
.Ordering
;
27 import javax
.jcr
.query
.qom
.QueryObjectModel
;
28 import javax
.jcr
.query
.qom
.QueryObjectModelFactory
;
29 import javax
.jcr
.query
.qom
.Selector
;
31 import org
.apache
.commons
.logging
.Log
;
32 import org
.apache
.commons
.logging
.LogFactory
;
33 import org
.argeo
.ArgeoException
;
34 import org
.argeo
.eclipse
.ui
.ErrorFeedback
;
35 import org
.argeo
.jcr
.JcrUtils
;
36 import org
.argeo
.slc
.client
.ui
.dist
.DistPlugin
;
37 import org
.argeo
.slc
.jcr
.SlcNames
;
38 import org
.argeo
.slc
.jcr
.SlcTypes
;
39 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
40 import org
.eclipse
.jface
.viewers
.ColumnLabelProvider
;
41 import org
.eclipse
.jface
.viewers
.IStructuredContentProvider
;
42 import org
.eclipse
.jface
.viewers
.TableViewer
;
43 import org
.eclipse
.jface
.viewers
.TableViewerColumn
;
44 import org
.eclipse
.jface
.viewers
.Viewer
;
45 import org
.eclipse
.swt
.SWT
;
46 import org
.eclipse
.swt
.layout
.GridData
;
47 import org
.eclipse
.swt
.layout
.GridLayout
;
48 import org
.eclipse
.swt
.widgets
.Table
;
49 import org
.eclipse
.ui
.IEditorInput
;
50 import org
.eclipse
.ui
.IEditorSite
;
51 import org
.eclipse
.ui
.PartInitException
;
52 import org
.eclipse
.ui
.forms
.IManagedForm
;
53 import org
.eclipse
.ui
.forms
.editor
.FormEditor
;
54 import org
.eclipse
.ui
.forms
.editor
.FormPage
;
55 import org
.eclipse
.ui
.forms
.widgets
.ScrolledForm
;
56 import org
.osgi
.framework
.Constants
;
59 * Editor to browse, analyze and modify an OSGi distribution
61 public class DistributionEditor
extends FormEditor
implements SlcNames
{
62 private final static Log log
= LogFactory
.getLog(DistributionEditor
.class);
63 public final static String ID
= DistPlugin
.ID
+ ".distributionEditor";
65 private Session session
;
68 public void init(IEditorSite site
, IEditorInput input
)
69 throws PartInitException
{
70 DistributionEditorInput dei
= (DistributionEditorInput
) input
;
72 session
= dei
.getRepository().login(dei
.getWorkspaceName());
73 } catch (RepositoryException e
) {
74 throw new PartInitException("Cannot log to workspace "
75 + dei
.getWorkspaceName(), e
);
77 setPartName(dei
.getWorkspaceName());
78 super.init(site
, input
);
82 protected void addPages() {
84 addPage(new DistributionOverviewPage(this, "Overview", session
));
85 } catch (PartInitException e
) {
86 throw new ArgeoException("Cannot add distribution editor pages", e
);
91 public void doSave(IProgressMonitor arg0
) {
95 public void doSaveAs() {
99 public boolean isSaveAsAllowed() {