]>
git.argeo.org Git - gpl/argeo-slc.git/blob - plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/AbstractAkbNodeEditor.java
ba2963e638f98ce9ec406008a7f4dcfe3b61499f
1 package org
.argeo
.slc
.akb
.ui
.editors
;
4 import javax
.jcr
.Repository
;
5 import javax
.jcr
.RepositoryException
;
6 import javax
.jcr
.Session
;
8 import org
.argeo
.jcr
.JcrUtils
;
9 import org
.argeo
.slc
.akb
.AkbException
;
10 import org
.argeo
.slc
.akb
.ui
.AkbUiPlugin
;
11 import org
.eclipse
.core
.runtime
.IProgressMonitor
;
12 import org
.eclipse
.swt
.widgets
.Composite
;
13 import org
.eclipse
.ui
.IEditorInput
;
14 import org
.eclipse
.ui
.IEditorSite
;
15 import org
.eclipse
.ui
.PartInitException
;
16 import org
.eclipse
.ui
.part
.EditorPart
;
19 * Parent Abstract Node editor for AKB. Manage life cycle of the JCR session that
22 public abstract class AbstractAkbNodeEditor
extends EditorPart
{
23 // private final static Log log = LogFactory
24 // .getLog(AbstractEntityEditor.class);
26 // We use a one session per editor pattern to secure various nodes and
28 private Repository repository
;
29 private Session session
;
35 public void init(IEditorSite site
, IEditorInput input
)
36 throws PartInitException
{
40 session
= repository
.login();
41 AkbNodeEditorInput anei
= (AkbNodeEditorInput
) getEditorInput();
42 akbNode
= session
.getNodeByIdentifier(anei
.getIdentifier());
44 // try to set a default part name
48 // String displayName = CommonsJcrUtils.get(getEntity(),
49 // Property.JCR_TITLE);
51 // if (CommonsJcrUtils.isEmptyString(displayName))
52 // displayName = "current item";
53 // setTitleToolTip("Display and edit information for " +
55 } catch (RepositoryException e
) {
56 throw new AkbException("Unable open editor for akb node", e
);
61 * Overwrite to provide a specific part Name
63 protected void updatePartName() {
64 // String name = CommonsJcrUtils.get(entity, Property.JCR_TITLE);
65 // if (CommonsJcrUtils.checkNotEmptyString(name)) {
66 // if (name.length() > SHORT_NAME_LENGHT)
67 // name = name.substring(0, SHORT_NAME_LENGHT - 1) + "...";
72 /* EXPOSES TO CHILDREN CLASSES */
73 protected Session
getSession() {
78 public void dispose() {
81 // CommonsJcrUtils.cancelAndCheckin(cNode);
85 JcrUtils
.logoutQuietly(session
);
91 public void doSaveAs() {
92 // unused compulsory method
96 public void doSave(IProgressMonitor monitor
) {
97 throw new AkbException("Implement this");
101 public boolean isDirty() {
103 return session
.hasPendingChanges();
104 } catch (Exception e
) {
105 throw new AkbException("Error getting session status.", e
);
110 public boolean isSaveAsAllowed() {
115 public void setFocus() {
118 /* DEPENDENCY INJECTION */
119 public void setRepository(Repository repository
) {
120 this.repository
= repository
;