use of org.olat.core.gui.components.tree.MenuTree in project OpenOLAT by OpenOLAT.
the class CmdMoveCopy method execute.
@Override
public Controller execute(FolderComponent fc, UserRequest ureq, WindowControl windowControl, Translator trans) {
this.folderComponent = fc;
this.translator = trans;
this.fileSelection = new FileSelection(ureq, fc.getCurrentContainerPath());
VelocityContainer main = new VelocityContainer("mc", VELOCITY_ROOT + "/movecopy.html", translator, this);
main.contextPut("fileselection", fileSelection);
// check if command is executed on a file list containing invalid filenames or paths
if (fileSelection.getInvalidFileNames().size() > 0) {
main.contextPut("invalidFileNames", fileSelection.getInvalidFileNames());
}
selTree = new MenuTree(null, "seltree", this);
FolderTreeModel ftm = new FolderTreeModel(ureq.getLocale(), fc.getRootContainer(), true, false, true, fc.getRootContainer().canWrite() == VFSConstants.YES, new EditableFilter());
selTree.setTreeModel(ftm);
selectButton = LinkFactory.createButton(move ? "move" : "copy", main, this);
cancelButton = LinkFactory.createButton("cancel", main, this);
main.put("seltree", selTree);
if (move) {
main.contextPut("move", Boolean.TRUE);
}
setInitialComponent(main);
return this;
}
use of org.olat.core.gui.components.tree.MenuTree in project OpenOLAT by OpenOLAT.
the class QTIEditorMainController method init.
private void init(UserRequest ureq) {
main = createVelocityContainer("index");
JSAndCSSComponent jsAndCss;
// Add html header js
jsAndCss = new JSAndCSSComponent("qitjsandcss", new String[] { "js/openolat/qti.js" }, null);
main.put("qitjsandcss", jsAndCss);
mainPanel = new Panel("p_qti_editor");
mainPanel.setContent(main);
if (notEditable) {
// test not editable
VelocityContainer notEditableVc = createVelocityContainer("notEditable");
notEditableButton = LinkFactory.createButton("ok", notEditableVc, this);
Panel panel = new Panel("notEditable");
panel.setContent(notEditableVc);
columnLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), null, panel, null);
putInitialPanel(columnLayoutCtr.getInitialComponent());
return;
}
stackedPanel = new TooledStackedPanel("qtiEditorStackedPanel", getTranslator(), this);
stackedPanel.setCssClass("o_edit_mode");
// initialize the history
if (qtiPackage.isResumed() && qtiPackage.hasSerializedChangelog()) {
// there were already changes made -> reload!
history = qtiPackage.loadChangelog();
} else {
// start with a fresh history. Editor is resumed but no changes were made
// so far.
history = new HashMap<String, Memento>();
}
// The menu tree model represents the structure of the qti document.
// All insert/move operations on the model are propagated to the structure
// by the node
menuTreeModel = new QTIEditorTreeModel(qtiPackage);
menuTree = new MenuTree("QTIDocumentTree");
menuTree.setTreeModel(menuTreeModel);
menuTree.setSelectedNodeId(menuTree.getTreeModel().getRootNode().getIdent());
// listen to the tree
menuTree.addListener(this);
// remember the qtidoc title when we started this editor, to correctly name
// the history report
startedWithTitle = menuTree.getSelectedNode().getAltText();
//
main.put("tabbedPane", menuTreeModel.getQtiRootNode().createEditTabbedPane(ureq, getWindowControl(), getTranslator(), this));
main.contextPut("qtititle", menuTreeModel.getQtiRootNode().getAltText());
main.contextPut("isRestrictedEdit", restrictedEdit ? Boolean.TRUE : Boolean.FALSE);
//
columnLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), menuTree, mainPanel, "qtieditor" + qtiPackage.getRepresentingResourceable());
listenTo(columnLayoutCtr);
stackedPanel.pushController("Editor", columnLayoutCtr);
// qtiPackage must be loaded previousely
populateToolC();
// Add css background
if (restrictedEdit) {
addSectionLink.setEnabled(false);
addSCLink.setEnabled(false);
addMCLink.setEnabled(false);
addPoolLink.setEnabled(false);
addFIBLink.setEnabled(false);
if (!qtiPackage.getQTIDocument().isSurvey()) {
addKPrimLink.setEnabled(false);
}
addEssayLink.setEnabled(false);
columnLayoutCtr.addCssClassToMain("o_editor_qti_correct");
} else {
columnLayoutCtr.addCssClassToMain("o_editor_qti");
}
deleteLink.setEnabled(false);
moveLink.setEnabled(false);
copyLink.setEnabled(false);
putInitialPanel(stackedPanel);
if (restrictedEdit) {
// we would like to us a modal dialog here, but this does not work! we
// can't push to stack because the outher workflows pushes us after the
// controller to the stack. Thus, if we used a modal dialog here the
// dialog would never show up.
columnLayoutCtr.setCol3(new Panel("empty"));
columnLayoutCtr.hideCol1(true);
columnLayoutCtr.hideCol2(true);
String text = translate("qti.restricted.edit.warning") + "<br/><br/>" + createReferenceesMsg(ureq);
proceedRestricedEditDialog = DialogBoxUIFactory.createYesNoDialog(ureq, getWindowControl(), null, text);
listenTo(proceedRestricedEditDialog);
proceedRestricedEditDialog.activate();
}
}
use of org.olat.core.gui.components.tree.MenuTree in project openolat by klemens.
the class CmdMoveCopy method execute.
@Override
public Controller execute(FolderComponent fc, UserRequest ureq, WindowControl windowControl, Translator trans) {
this.folderComponent = fc;
this.translator = trans;
this.fileSelection = new FileSelection(ureq, fc.getCurrentContainerPath());
VelocityContainer main = new VelocityContainer("mc", VELOCITY_ROOT + "/movecopy.html", translator, this);
main.contextPut("fileselection", fileSelection);
// check if command is executed on a file list containing invalid filenames or paths
if (fileSelection.getInvalidFileNames().size() > 0) {
main.contextPut("invalidFileNames", fileSelection.getInvalidFileNames());
}
selTree = new MenuTree(null, "seltree", this);
FolderTreeModel ftm = new FolderTreeModel(ureq.getLocale(), fc.getRootContainer(), true, false, true, fc.getRootContainer().canWrite() == VFSConstants.YES, new EditableFilter());
selTree.setTreeModel(ftm);
selectButton = LinkFactory.createButton(move ? "move" : "copy", main, this);
cancelButton = LinkFactory.createButton("cancel", main, this);
main.put("seltree", selTree);
if (move) {
main.contextPut("move", Boolean.TRUE);
}
setInitialComponent(main);
return this;
}
use of org.olat.core.gui.components.tree.MenuTree in project openolat by klemens.
the class GenericMainController method init.
/**
* use after optional addChildNodeToAppend() or addChildNodeToPrepend() calls
* to initialize MainController and set Panel
*
* @param ureq
*/
public void init(UserRequest ureq) {
olatMenuTree = new MenuTree("olatMenuTree");
TreeModel tm = buildTreeModel(ureq);
olatMenuTree.setTreeModel(tm);
content = new Panel("content");
TreeNode firstNode = tm.getRootNode();
TreeNode nodeToSelect = getLastDelegate(firstNode);
olatMenuTree.setSelectedNodeId(nodeToSelect.getIdent());
olatMenuTree.addListener(this);
// default is to not display the root element and to let user open/close sub elements
olatMenuTree.setRootVisible(false);
olatMenuTree.setExpandSelectedNode(false);
Object uobject = nodeToSelect.getUserObject();
contentCtr = getContentCtr(uobject, ureq);
// auto dispose later
listenTo(contentCtr);
Component resComp = contentCtr.getInitialComponent();
content.setContent(resComp);
columnLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), olatMenuTree, content, className);
// auto dispose later
listenTo(columnLayoutCtr);
// create the stack
stackVC = new BreadcrumbedStackedPanel("genericStack", getTranslator(), this);
stackVC.pushController("content", columnLayoutCtr);
putInitialPanel(stackVC);
}
use of org.olat.core.gui.components.tree.MenuTree in project OpenOLAT by OpenOLAT.
the class EPCollectStepForm04 method initForm.
/**
* @see org.olat.core.gui.control.generic.wizard.StepFormBasicController#initForm(org.olat.core.gui.components.form.flexible.FormItemContainer,
* org.olat.core.gui.control.Controller, org.olat.core.gui.UserRequest)
*/
@Override
protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
List<PortfolioStructure> structs = ePFMgr.getStructureElementsForUser(getIdentity());
if (structs != null && structs.size() != 0) {
TreeModel treeModel = new MapsTreeModel(getIdentity(), getTranslator());
mapsTreeController = new MenuTree("my.maps");
mapsTreeController.setTreeModel(treeModel);
mapsTreeController.setSelectedNode(treeModel.getRootNode());
mapsTreeController.setDragEnabled(false);
mapsTreeController.setDropEnabled(false);
mapsTreeController.setDropSiblingEnabled(false);
mapsTreeController.addListener(this);
mapsTreeController.setRootVisible(true);
if (preSelectedStructure != null) {
TreeNode node = TreeHelper.findNodeByUserObject(preSelectedStructure, treeModel.getRootNode());
if (node != null) {
mapsTreeController.setSelectedNode(node);
}
}
flc.put("treeCtr", mapsTreeController);
}
if (!isUsedInStepWizzard()) {
// add form buttons
uifactory.addFormSubmitButton("stepform.submit", formLayout);
}
}
Aggregations