import org.argeo.cms.text.TextInterpreter;
import org.argeo.cms.text.TextSection;
import org.argeo.cms.ui.CmsEditable;
-import org.argeo.cms.ui.CmsImageManager;
-import org.argeo.cms.ui.CmsView;
import org.argeo.cms.ui.util.CmsUiUtils;
import org.argeo.cms.ui.viewers.AbstractPageViewer;
import org.argeo.cms.ui.viewers.EditablePart;
import org.argeo.cms.ui.viewers.PropertyPart;
import org.argeo.cms.ui.viewers.Section;
import org.argeo.cms.ui.viewers.SectionPart;
-import org.argeo.cms.ui.widgets.EditableImage;
import org.argeo.cms.ui.widgets.EditableText;
-import org.argeo.cms.ui.widgets.Img;
import org.argeo.cms.ui.widgets.StyledControl;
-import org.argeo.entity.EntityType;
+import org.argeo.jcr.Jcr;
import org.argeo.jcr.JcrException;
import org.argeo.jcr.JcrUtils;
import org.eclipse.rap.fileupload.FileDetails;
private final Section mainSection;
private TextInterpreter textInterpreter = new DbkTextInterpreter();
- private CmsImageManager imageManager;
+ private DbkImageManager imageManager;
private FileUploadListener fileUploadListener;
private DbkContextMenu styledTools;
protected AbstractDbkViewer(Section parent, int style, CmsEditable cmsEditable) {
super(parent, style, cmsEditable);
- CmsView cmsView = CmsView.getCmsView(parent);
+// CmsView cmsView = CmsView.getCmsView(parent);
// imageManager = cmsView.getImageManager();
- imageManager = new DbkImageManager();
flat = SWT.FLAT == (style & SWT.FLAT);
if (getCmsEditable().canEdit()) {
styledTools = new DbkContextMenu(this, parent.getShell());
}
this.mainSection = parent;
+ Node baseFolder = Jcr.getParent(mainSection.getNode());
+ imageManager = new DbkImageManager(baseFolder);
initModelIfNeeded(mainSection.getNode());
// layout(this.mainSection);
}
SectionPart sectionPart = null;
if (child.isNodeType(DocBookTypes.MEDIAOBJECT)) {
if (child.hasNode(DocBookTypes.IMAGEOBJECT)) {
- Node imageNode = child.getNode(DocBookTypes.IMAGEOBJECT).getNode(DocBookTypes.INFO)
- .getNode(EntityType.box.get());
- sectionPart = newImg(textSection, imageNode);
+ Node imageDataNode = child.getNode(DocBookTypes.IMAGEOBJECT).getNode(DocBookTypes.IMAGEDATA);
+ sectionPart = newImg(textSection, imageDataNode);
}
} else if (child.isNodeType(DocBookTypes.PARA)) {
sectionPart = newParagraph(textSection, child);
return paragraph;
}
- protected Img newImg(TextSection parent, Node node) {
+ protected DbkImg newImg(TextSection parent, Node node) {
try {
- Img img = new Img(parent, parent.getStyle(), node, imageManager) {
- private static final long serialVersionUID = 1297900641952417540L;
-
- @Override
- protected void setContainerLayoutData(Composite composite) {
- composite.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
- }
-
- @Override
- protected void setControlLayoutData(Control control) {
- control.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
- }
- };
+ DbkImg img = new DbkImg(parent, parent.getStyle(), node, imageManager);
img.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
updateContent(img);
img.setMouseListener(getMouseListener());
paragraph.setText(textInterpreter.raw(partNode));
else
paragraph.setText(textInterpreter.readSimpleHtml(partNode));
- } else if (part instanceof EditableImage) {
- EditableImage editableImage = (EditableImage) part;
+ } else if (part instanceof DbkImg) {
+ DbkImg editableImage = (DbkImg) part;
imageManager.load(partNode, part.getControl(), editableImage.getPreferredImageSize());
}
} else if (part instanceof DocBookSectionTitle) {
"ALT+ARROW_RIGHT", "ALT+ARROW_UP", "ALT+ARROW_DOWN", "RETURN", "CTRL+RETURN", "ENTER", "DELETE" });
text.setData(RWT.CANCEL_KEYS, new String[] { "RETURN", "ALT+ARROW_LEFT", "ALT+ARROW_RIGHT" });
text.addKeyListener(this);
- } else if (part instanceof Img) {
- ((Img) part).setFileUploadListener(fileUploadListener);
+ } else if (part instanceof DbkImg) {
+ ((DbkImg) part).setFileUploadListener(fileUploadListener);
}
}
try {
Node node = sectionPart.getNode();
Session session = node.getSession();
- if (sectionPart instanceof Img) {
+ if (sectionPart instanceof DbkImg) {
// FIXME make it more robust
- node = node.getParent().getParent().getParent();
+ node = node.getParent().getParent();
+ if (!DocBookNames.DBK_MEDIAOBJECT.equals(node.getName()))
+ throw new IllegalArgumentException("Node " + node + " is not a media object.");
}
node.remove();
session.save();
// sectionNode.orderBefore(p(partNode.getIndex()),
// p(newNode.getIndex()));
persistChanges(sectionNode);
- Img img = newImg((TextSection) section, newNode);
+ DbkImg img = newImg((TextSection) section, newNode);
edit(img, null);
layout(img.getControl());
- } else if (part instanceof Img) {
+ } else if (part instanceof DbkImg) {
if (getEdited() == part)
return;
edit(part, null);
Control source = (Control) e.getSource();
EditablePart composite = findDataParent(source);
Point point = new Point(e.x, e.y);
- if (composite instanceof Img) {
+ if (composite instanceof DbkImg) {
if (getCmsEditable().canEdit()) {
- if (getCmsEditable().isEditing() && !(getEdited() instanceof Img)) {
+ if (getCmsEditable().isEditing() && !(getEdited() instanceof DbkImg)) {
if (source == mainSection)
return;
EditablePart part = findDataParent(source);