Skip to main content

Absatz-Reihenfolge in Body festlegen

Comments

10 comments

  • Zendesk API User
    Author: feddersen - 12/20/2013 21:30

    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.

    0
  • Zendesk API User
    Author: jst - 1/6/2014 14:27

    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)

    0
  • Zendesk API User
    Author: jst - 1/6/2014 15:02

    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

    0
  • Zendesk API User
    Author: jst - 1/7/2014 13:46

    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

    0
  • Zendesk API User
    Author: jst - 12/20/2013 15:24

    Alles klar... Augenauf beim API-Lesen... Es gibt eine Methode moveChild... Sorry für's stören ;-)

    0
  • Zendesk API User
    Author: jst - 12/20/2013 18:51

    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

    0
  • Zendesk API User
    Author: jst - 12/20/2013 16:06

    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

    0
  • Zendesk API User
    Author: feddersen - 12/20/2013 17:39

    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.

    0
  • Zendesk API User
    Author: jan-tilo - 1/6/2014 14:40

    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

    0
  • Zendesk API User
    Author: jst - 1/6/2014 8:33

    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

    0

Please sign in to leave a comment.