- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Absatz-Reihenfolge in Body festlegen
Hallo Community,
ich suche aktuell die Mรถglichkeit per Script oder Modul die Reihenfolge von Absรคtzen zu verรคndern. Mit folgende Schnipsel bekomme ich die aktuelle Position eines Absatzelementes im Body
body.getChildIndex(section);
Gibt es bereits eine Mรถglichkeit, die Reihenfolge zu beinflussen?
Viele Grรผรe,
Jรถrn
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jan Tilo,
das war jetzt der Ergebnissbringende Hinweis ๐ Vielen Lieben Dank!
In der Map habe ich das Element gehabt, welches ich wiederherstellen wollte. Das Element habe ich dann zur Verschiebung verwendet. Leider lag an der Stelle das Element in einer falschen Revision vor. D.h. ich hatte im Prinzip nicht "exakt" das Element, welches ich verschieben wollte, sondern ein veraltetes Objekt.
D.h. nach dem Wiederherstellen des Elements muss ich mir dieses erst erneut aus dem Body suchen um es dann verschieben zu kรถnnen.
Viele Grรผรe,
Jรถrn
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Alles klar... Augenauf beim API-Lesen... Es gibt eine Methode moveChild... Sorry fรผr's stรถren ๐
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So... Neues Problem ๐
wenn ich jetzt die oben genannte Methode verwende, dann erhalte ich eine SecurityException.
java.lang.SecurityException: read only store
at de.espirit.firstspirit.store.access.ReadOnlySecurityManager.checkAccess(ReadOnlySecurityManager.java:26)
at de.espirit.firstspirit.store.access.AbstractStoreElement.checkAccess(AbstractStoreElement.java:1404)
Woran kann es wohl liegen, dass ich den Absatz nicht verschieben kann? Das Element ist nicht gesperrt und der Benutzer ist Admin.
Viele Grรผรe,
Jรถrn
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In welchem Context versuchst du das? Eventuell in einer Generierung oder in einem Skript nach einer Generierung? Dann sind die Stores im Read-only Modus.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Wir haben ein Module gebaut, welches das installieren von Features รผbernimmt. Wenn die Inhaltsseite bereits exisiterte, dann werden vom ContentTransport gelรถschte Absรคtze wieder hergestellt. Die Absรคtze sollen dann wieder an die korrekte Stelle geschoben werden.
Das herstellen funktioniert super. Nur das verschieben leider nicht.
Viele Grรผรe
Jรถrn
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Vielleicht arbeitest du auch versehentlich im Freigabestand? Ist so schwer zu sagen. Komplette Stacktraces und etwas mehr Informationen (Was fรผr eine Art von Modul ist das und wo wird das aufgerufen (Workflow, per Skript, im Auftrag etc.) kรถnnte helfen. Die relevanten Codezeilen aus dem Modul vielleicht auch.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Christoph,
sorry, dass ich jetzt erst wieder antworte.
Das Modul ist eine Context-Menu-Plugin. Mit folgenden Codezeilen versuche ich nach dem wiederherstellen eines Absatzes eben auch diesen wieder zu verschieben:
try {
this.pageStore.restore(elementInfo, null);
Body body = storeElement.getBodyByName(bodyName);
body.refresh();
body.moveChild((IDProvider) elementMap.get(elementInfo)[0], (Integer) elementMap.get(elementInfo)[1]);
} catch (LockException e) {
Logging.logError("Element locked: " + e.getMessage(), LOGGER);
} catch (ElementMovedException e) {
Logging.logError("Element cannot be moved: " + e.getMessage(), LOGGER);
}
In der "elementMap" findet sich die vorherige Position des Elements. D.h ich versuche mit dem ElementInfo-Objekt aus der Historie das Element an seine ursprรผngliche Position zu verschieben.
Viele Grรผรe
Jรถrn
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hier noch der Stacktrace:
java.lang.SecurityException: read only store
at de.espirit.firstspirit.store.access.ReadOnlySecurityManager.checkAccess(ReadOnlySecurityManager.java:26)
at de.espirit.firstspirit.store.access.AbstractStoreElement.checkAccess(AbstractStoreElement.java:1404)
at de.espirit.firstspirit.store.access.pagestore.SectionImpl.checkAccess(SectionImpl.java:599)
at de.espirit.firstspirit.store.access.AbstractStoreElement.checkDeletePermission(AbstractStoreElement.java:1445)
at de.espirit.firstspirit.store.access.DefaultStoreElement.moveChild(DefaultStoreElement.java:3057)
at de.XXX.XXX.fs.plugins.RolloutItem.execute(RolloutItem.java:98)
at de.espirit.firstspirit.client.plugin.contextmenu.JavaClientContextMenuItemFactory$1.actionPerformed(JavaClientContextMenuItemFactory.java:44)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:133)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:117)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:110)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jรถrn,
interessant wรคre es zu sehen wie Du Dir den pageStore besorgst.
Wie Christoph bereits geschrieben hat, kรถnnte es sein, dass Du auf dem Release Stand des Stores arbeitest. Dann kommt es zu dem genannten Problem.
Schau mal in der API bei UserService:
getStore(Store.Type storeType, boolean release)
Viele Grรผรe
Jan Tilo
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Jan Tilo,
ich hole mir direkt รผber das IDProvider den Store. Mit "IDProvider.getStore()". In meinem ContextMenu-Plugin bekomme ich leider immer den Fehler, dass der UserService nicht gestartet sei.
Viele Grรผรe,
Jรถrn

