Search the FirstSpirit Knowledge Base
Hallo,
ich versuche momentan eine Inline Editor Plugin für das ContentCreator mit Maven zu schreiben.
Leider wird mein Module nicht in der Editor Leiste angezeigt. Ich weiß nicht woran es liegt.
Die Pom, Module und Fsm.xml liegt im Anhang.
Hier der Code des Plugins:
import de.espirit.firstspirit.access.BaseContext;
import de.espirit.firstspirit.access.store.IDProvider;
import de.espirit.firstspirit.agency.OperationAgent;
import de.espirit.firstspirit.ui.operations.RequestOperation;
import de.espirit.firstspirit.webedit.plugin.WebeditInlineEditItemsPlugin;
import de.espirit.firstspirit.webedit.plugin.inlineedit.ExecutableInlineEditItem;
import de.espirit.firstspirit.webedit.plugin.inlineedit.InlineEditContext;
import de.espirit.firstspirit.webedit.plugin.inlineedit.InlineEditItem;
import java.util.Arrays;
import java.util.Collection;
public class ReleasePlugin implements WebeditInlineEditItemsPlugin {private BaseContext _baseContext;
@Override
public void setUp(BaseContext baseContext) {this._baseContext = baseContext;
}@Override
public void tearDown() {}
@Override
public Collection<? extends InlineEditItem> getItems() {return Arrays.asList(
new ExecutableReleasePlugin()
);
}private static class ExecutableReleasePlugin implements ExecutableInlineEditItem {
@Override
public String getLabel(InlineEditContext inlineEditContext) {return "Example Executable InlineEdit Item";
}@Override
public String getIconPath(InlineEditContext inlineEditContext) {return null;
}@Override
public void execute(InlineEditContext inlineEditContext) {final OperationAgent operationAgent = inlineEditContext.requireSpecialist(OperationAgent.TYPE);
final RequestOperation requestOperation = operationAgent.getOperation(RequestOperation.TYPE);
requestOperation.setKind(RequestOperation.Kind.INFO);
requestOperation.perform("This message box is generated by the Example Executable InlineEdit Item.");
}@Override
public boolean isVisible(InlineEditContext inlineEditContext) {// final IDProvider element = inlineEditContext.getElement();
// return !(element instanceof Content2Section || element instanceof SectionReference) && element instanceof Section;
return true;
}@Override
public boolean isEnabled(InlineEditContext inlineEditContext) {final IDProvider element = inlineEditContext.getElement();
return element != null && (!element.isPermissionSupported() || element.getPermission().canChange());
}}
}
VG Valeh.
Hallo Valeh,
in deiner module.xml sehe ich keine Definition von Web-Ressourcen. Damit ein Plugin im ContentCreator nutzbar ist, muss eine WebApp-Definition im Modul vorhanden sein, deren Ressourcen dann im AppServer ausgerollt werden.
Die Definition dürfte vermutlich so aussehen:
<web-app>
<name>ReleasePlugin</name>
<description>ReleasePlugin Web-App</description>
<web-xml>web/web.xml</web-xml>
<web-resources>
<resource>lib/${project.artifactId}-${project.version}-jar-with-dependencies.jar</resource>
</web-resources>
</web-app>
Ohne die Definition sind im AppServer deine Klassen nicht bekannt.
Beste Grüße
Stefan