projects
/
lgpl
/
argeo-commons.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve generic editable components.
[lgpl/argeo-commons.git]
/
org.argeo.cms.ui
/
src
/
org
/
argeo
/
cms
/
ui
/
viewers
/
AbstractPageViewer.java
diff --git
a/org.argeo.cms.ui/src/org/argeo/cms/ui/viewers/AbstractPageViewer.java
b/org.argeo.cms.ui/src/org/argeo/cms/ui/viewers/AbstractPageViewer.java
index e23e3ba7957320a67cdd82cb0d5de5f18c4561be..004bd943531aa9854c318ac184cecd7a03c3f776 100644
(file)
--- a/
org.argeo.cms.ui/src/org/argeo/cms/ui/viewers/AbstractPageViewer.java
+++ b/
org.argeo.cms.ui/src/org/argeo/cms/ui/viewers/AbstractPageViewer.java
@@
-13,7
+13,6
@@
import javax.security.auth.Subject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.CmsException;
import org.argeo.cms.ui.CmsEditable;
import org.argeo.cms.ui.widgets.ScrolledPage;
import org.argeo.jcr.JcrException;
import org.argeo.cms.ui.CmsEditable;
import org.argeo.cms.ui.widgets.ScrolledPage;
import org.argeo.jcr.JcrException;
@@
-75,8
+74,8
@@
public abstract class AbstractPageViewer extends ContentViewer implements Observ
initModel(node);
node.getSession().save();
}
initModel(node);
node.getSession().save();
}
- } catch (Exception e) {
- throw new
Cms
Exception("Cannot initialize model", e);
+ } catch (
Repository
Exception e) {
+ throw new
Jcr
Exception("Cannot initialize model", e);
}
}
}
}
@@
-121,6
+120,16
@@
public abstract class AbstractPageViewer extends ContentViewer implements Observ
}
}
}
}
+ protected void layoutPage() {
+ if (page != null)
+ page.layout(true, true);
+ }
+
+ protected void showControl(Control control) {
+ if (page != null && (page instanceof ScrolledPage))
+ ((ScrolledPage) page).showControl(control);
+ }
+
@Override
public void update(Observable o, Object arg) {
if (o == cmsEditable)
@Override
public void update(Observable o, Object arg) {
if (o == cmsEditable)
@@
-154,9
+163,10
@@
public abstract class AbstractPageViewer extends ContentViewer implements Observ
else
mouseListener = null;
refresh(getControl());
else
mouseListener = null;
refresh(getControl());
- layout(getControl());
+ // layout(getControl());
+ layoutPage();
} catch (RepositoryException e) {
} catch (RepositoryException e) {
- throw new
Cms
Exception("Cannot refresh", e);
+ throw new
Jcr
Exception("Cannot refresh", e);
}
return null;
});
}
return null;
});
@@
-192,6
+202,7
@@
public abstract class AbstractPageViewer extends ContentViewer implements Observ
prepare(part, caretPosition);
edited = part;
edited.getControl().addFocusListener(new FocusListener() {
prepare(part, caretPosition);
edited = part;
edited.getControl().addFocusListener(new FocusListener() {
+ private static final long serialVersionUID = 6883521812717097017L;
@Override
public void focusLost(FocusEvent event) {
@Override
public void focusLost(FocusEvent event) {
@@
-204,8
+215,9
@@
public abstract class AbstractPageViewer extends ContentViewer implements Observ
});
layout(part.getControl());
});
layout(part.getControl());
+ showControl(part.getControl());
} catch (RepositoryException e) {
} catch (RepositoryException e) {
- throw new
Cms
Exception("Cannot edit " + part, e);
+ throw new
Jcr
Exception("Cannot edit " + part, e);
}
}
}
}
@@
-262,14
+274,14
@@
public abstract class AbstractPageViewer extends ContentViewer implements Observ
if (parent.getParent() != null)
return findDataParent(parent.getParent());
else
if (parent.getParent() != null)
return findDataParent(parent.getParent());
else
- throw new
Cms
Exception("No data parent found");
+ throw new
IllegalState
Exception("No data parent found");
}
// UTILITIES
/** Check whether the edited part is in a proper state */
protected void checkEdited() {
if (edited == null || (edited instanceof Widget) && ((Widget) edited).isDisposed())
}
// UTILITIES
/** Check whether the edited part is in a proper state */
protected void checkEdited() {
if (edited == null || (edited instanceof Widget) && ((Widget) edited).isDisposed())
- throw new
Cms
Exception("Edited should not be null or disposed at this stage");
+ throw new
IllegalState
Exception("Edited should not be null or disposed at this stage");
}
/** Persist all changes. */
}
/** Persist all changes. */
@@
-302,7
+314,7
@@
public abstract class AbstractPageViewer extends ContentViewer implements Observ
res = Subject.getSubject(accessControlContext);
}
if (res == null)
res = Subject.getSubject(accessControlContext);
}
if (res == null)
- throw new
Cms
Exception("No subject associated with this viewer");
+ throw new
IllegalState
Exception("No subject associated with this viewer");
return res;
}
return res;
}