You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/01/17 17:36:44 UTC
svn commit: r1779221 - in /openmeetings/application:
branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/
trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/
Author: solomax
Date: Tue Jan 17 17:36:44 2017
New Revision: 1779221
URL: http://svn.apache.org/viewvc?rev=1779221&view=rev
Log:
[OPENMEETINGS-1527] basic work on issue
Added:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java
Modified:
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
Added: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java?rev=1779221&view=auto
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java (added)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java Tue Jan 17 17:36:44 2017
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common.tree;
+
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
+import org.apache.openmeetings.db.entity.record.Recording;
+import org.apache.openmeetings.db.entity.record.Recording.Status;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.extensions.markup.html.repeater.tree.AbstractTree.State;
+import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.ui.markup.html.link.AjaxLink;
+
+/* FIXME TODO need to be removed */
+public class FileFolder extends Folder<FileItem> {
+ private static final long serialVersionUID = 1L;
+ private final static String CSS_CLASS_FILE = "file ";
+ final FileTreePanel treePanel;
+ final FileItemTree tree;
+
+ public FileFolder(String id, FileItemTree tree, IModel<FileItem> model, FileTreePanel treePanel) {
+ super(id, tree, model);
+ this.treePanel = treePanel;
+ this.tree = tree;
+ }
+
+ @Override
+ protected Component newLabelComponent(String id, final IModel<FileItem> lm) {
+ FileItem r = lm.getObject();
+ return Type.Folder == r.getType() || r.getId() == null ? new FolderPanel(id, lm, treePanel) : new FileItemPanel(id, lm, treePanel);
+ }
+
+ @Override
+ protected boolean isSelected() {
+ FileItem f = getModelObject(), s = treePanel.getSelected();
+ return (s.getId() == null && s.getId() == f.getId() && s.getHash().equals(f.getHash()))
+ || (s.getId() != null && s.getId().equals(f.getId()));
+ }
+
+ @Override
+ protected boolean isClickable() {
+ return true;
+ }
+
+ @Override
+ protected void onClick(AjaxRequestTarget target) {
+ FileItem r = getModelObject();
+ treePanel.setSelected(r, target);
+ if (Type.Folder == r.getType()) {
+ if (tree.getState(r) == State.COLLAPSED) {
+ super.onClick(target);
+ }
+ } else {
+ treePanel.update(target, r);
+ }
+ }
+
+ @Override
+ protected MarkupContainer newLinkComponent(String id, IModel<FileItem> model) {
+ return new AjaxLink<Void>(id) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public boolean isEnabled() {
+ return FileFolder.this.isClickable();
+ }
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+ FileFolder.this.onClick(target);
+ }
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+ super.updateAjaxAttributes(attributes);
+ attributes.getDynamicExtraParameters().add("return {'aa': 1};");
+ }
+ };
+ }
+
+ private String getItemStyle(FileItem f, boolean open) {
+ StringBuilder style = new StringBuilder("big om-icon ");
+ if (f.getId() == null) {
+ style.append(CSS_CLASS_FILE).append(f.getHash().indexOf("my") > -1 ? "my" : "public");
+ } else {
+ if (!f.exists()) {
+ style.append("broken ");
+ }
+ switch(f.getType()) {
+ case Folder:
+ style.append(CSS_CLASS_FILE).append(open ? "folder-open " : "folder ");
+ break;
+ case Image:
+ style.append(CSS_CLASS_FILE).append("image ");
+ break;
+ case PollChart:
+ style.append(CSS_CLASS_FILE).append("chart ");
+ break;
+ case WmlFile:
+ style.append(CSS_CLASS_FILE).append("wml ");
+ break;
+ case Video:
+ case Recording:
+ {
+ style.append("recording ");
+ if (f instanceof Recording) {
+ Status st = ((Recording)f).getStatus();
+ if (Status.RECORDING == st || Status.CONVERTING == st) {
+ style.append("processing");
+ }
+ }
+ }
+ break;
+ case Presentation:
+ style.append(CSS_CLASS_FILE).append("doc ");
+ break;
+ default:
+ break;
+ }
+ }
+ return style.toString();
+ }
+
+ @Override
+ protected String getOtherStyleClass(FileItem r) {
+ return getItemStyle(r, false);
+ }
+
+ @Override
+ protected String getOpenStyleClass() {
+ return getItemStyle(getModelObject(), true);
+ }
+
+ @Override
+ protected String getClosedStyleClass() {
+ return getItemStyle(getModelObject(), false);
+ }
+
+ @Override
+ protected String getSelectedStyleClass() {
+ return "ui-state-active";
+ }
+
+ @Override
+ protected IModel<String> newLabelModel(IModel<FileItem> model) {
+ return Model.of(model.getObject().getName());
+ }
+}
Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java?rev=1779221&r1=1779220&r2=1779221&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java Tue Jan 17 17:36:44 2017
@@ -19,132 +19,24 @@
package org.apache.openmeetings.web.common.tree;
import org.apache.openmeetings.db.entity.file.FileItem;
-import org.apache.openmeetings.db.entity.file.FileItem.Type;
-import org.apache.openmeetings.db.entity.record.Recording;
-import org.apache.openmeetings.db.entity.record.Recording.Status;
import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.tree.DefaultNestedTree;
import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
-import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
public class FileItemTree extends DefaultNestedTree<FileItem> {
private static final long serialVersionUID = 1L;
- private final FileTreePanel treePanel;
- private final static String CSS_CLASS_FILE = "file ";
+ final FileTreePanel treePanel;
public FileItemTree(String id, FileTreePanel treePanel, ITreeProvider<FileItem> tp) {
super(id, tp);
this.treePanel = treePanel;
setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
}
-
+
@Override
protected Component newContentComponent(String id, IModel<FileItem> node) {
- return new Folder<FileItem>(id, this, node) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected Component newLabelComponent(String id, final IModel<FileItem> lm) {
- FileItem r = lm.getObject();
- return Type.Folder == r.getType() || r.getId() == null ? new FolderPanel(id, lm, treePanel) : new FileItemPanel(id, lm, treePanel);
- }
-
- @Override
- protected boolean isSelected() {
- FileItem f = getModelObject(), s = treePanel.getSelected();
- return (s.getId() == null && s.getId() == f.getId() && s.getHash().equals(f.getHash()))
- || (s.getId() != null && s.getId().equals(f.getId()));
- }
-
- @Override
- protected boolean isClickable() {
- return true;
- }
-
- @Override
- protected void onClick(AjaxRequestTarget target) {
- FileItem r = getModelObject();
- treePanel.setSelected(r, target);
- if (Type.Folder == r.getType()) {
- if (getState(r) == State.COLLAPSED) {
- super.onClick(target);
- }
- } else {
- treePanel.update(target, r);
- }
- }
-
- private String getItemStyle(FileItem f, boolean open) {
- StringBuilder style = new StringBuilder("big om-icon ");
- if (f.getId() == null) {
- style.append(CSS_CLASS_FILE).append(f.getHash().indexOf("my") > -1 ? "my" : "public");
- } else {
- if (!f.exists()) {
- style.append("broken ");
- }
- switch(f.getType()) {
- case Folder:
- style.append(CSS_CLASS_FILE).append(open ? "folder-open " : "folder ");
- break;
- case Image:
- style.append(CSS_CLASS_FILE).append("image ");
- break;
- case PollChart:
- style.append(CSS_CLASS_FILE).append("chart ");
- break;
- case WmlFile:
- style.append(CSS_CLASS_FILE).append("wml ");
- break;
- case Video:
- case Recording:
- {
- style.append("recording ");
- if (f instanceof Recording) {
- Status st = ((Recording)f).getStatus();
- if (Status.RECORDING == st || Status.CONVERTING == st) {
- style.append("processing");
- }
- }
- }
- break;
- case Presentation:
- style.append(CSS_CLASS_FILE).append("doc ");
- break;
- default:
- break;
- }
- }
- return style.toString();
- }
-
- @Override
- protected String getOtherStyleClass(FileItem r) {
- return getItemStyle(r, false);
- }
-
- @Override
- protected String getOpenStyleClass() {
- return getItemStyle(getModelObject(), true);
- }
-
- @Override
- protected String getClosedStyleClass() {
- return getItemStyle(getModelObject(), false);
- }
-
- @Override
- protected String getSelectedStyleClass() {
- return "ui-state-active";
- }
-
- @Override
- protected IModel<String> newLabelModel(IModel<FileItem> model) {
- return Model.of(model.getObject().getName());
- }
- };
+ return new FileFolder(id, this, node, treePanel);
}
}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java?rev=1779221&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileFolder.java Tue Jan 17 17:36:44 2017
@@ -0,0 +1,169 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.common.tree;
+
+import org.apache.openmeetings.db.entity.file.FileItem;
+import org.apache.openmeetings.db.entity.file.FileItem.Type;
+import org.apache.openmeetings.db.entity.record.Recording;
+import org.apache.openmeetings.db.entity.record.Recording.Status;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.extensions.markup.html.repeater.tree.AbstractTree.State;
+import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+import com.googlecode.wicket.jquery.ui.markup.html.link.AjaxLink;
+
+public class FileFolder extends Folder<FileItem> {
+ private static final long serialVersionUID = 1L;
+ private final static String CSS_CLASS_FILE = "file ";
+ final FileTreePanel treePanel;
+ final FileItemTree tree;
+
+ public FileFolder(String id, FileItemTree tree, IModel<FileItem> model, FileTreePanel treePanel) {
+ super(id, tree, model);
+ this.treePanel = treePanel;
+ this.tree = tree;
+ }
+
+ @Override
+ protected Component newLabelComponent(String id, final IModel<FileItem> lm) {
+ FileItem r = lm.getObject();
+ return Type.Folder == r.getType() || r.getId() == null ? new FolderPanel(id, lm, treePanel) : new FileItemPanel(id, lm, treePanel);
+ }
+
+ @Override
+ protected boolean isSelected() {
+ FileItem f = getModelObject(), s = treePanel.getSelected();
+ return (s.getId() == null && s.getId() == f.getId() && s.getHash().equals(f.getHash()))
+ || (s.getId() != null && s.getId().equals(f.getId()));
+ }
+
+ @Override
+ protected boolean isClickable() {
+ return true;
+ }
+
+ @Override
+ protected void onClick(AjaxRequestTarget target) {
+ FileItem r = getModelObject();
+ treePanel.setSelected(r, target);
+ if (Type.Folder == r.getType()) {
+ if (tree.getState(r) == State.COLLAPSED) {
+ super.onClick(target);
+ }
+ } else {
+ treePanel.update(target, r);
+ }
+ }
+
+ @Override
+ protected MarkupContainer newLinkComponent(String id, IModel<FileItem> model) {
+ return new AjaxLink<Void>(id) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public boolean isEnabled() {
+ return FileFolder.this.isClickable();
+ }
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+ FileFolder.this.onClick(target);
+ }
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+ super.updateAjaxAttributes(attributes);
+ attributes.getDynamicExtraParameters().add("return {'aa': 1};");
+ }
+ };
+ }
+
+ private String getItemStyle(FileItem f, boolean open) {
+ StringBuilder style = new StringBuilder("big om-icon ");
+ if (f.getId() == null) {
+ style.append(CSS_CLASS_FILE).append(f.getHash().indexOf("my") > -1 ? "my" : "public");
+ } else {
+ if (!f.exists()) {
+ style.append("broken ");
+ }
+ switch(f.getType()) {
+ case Folder:
+ style.append(CSS_CLASS_FILE).append(open ? "folder-open " : "folder ");
+ break;
+ case Image:
+ style.append(CSS_CLASS_FILE).append("image ");
+ break;
+ case PollChart:
+ style.append(CSS_CLASS_FILE).append("chart ");
+ break;
+ case WmlFile:
+ style.append(CSS_CLASS_FILE).append("wml ");
+ break;
+ case Video:
+ case Recording:
+ {
+ style.append("recording ");
+ if (f instanceof Recording) {
+ Status st = ((Recording)f).getStatus();
+ if (Status.RECORDING == st || Status.CONVERTING == st) {
+ style.append("processing");
+ }
+ }
+ }
+ break;
+ case Presentation:
+ style.append(CSS_CLASS_FILE).append("doc ");
+ break;
+ default:
+ break;
+ }
+ }
+ return style.toString();
+ }
+
+ @Override
+ protected String getOtherStyleClass(FileItem r) {
+ return getItemStyle(r, false);
+ }
+
+ @Override
+ protected String getOpenStyleClass() {
+ return getItemStyle(getModelObject(), true);
+ }
+
+ @Override
+ protected String getClosedStyleClass() {
+ return getItemStyle(getModelObject(), false);
+ }
+
+ @Override
+ protected String getSelectedStyleClass() {
+ return "ui-state-active";
+ }
+
+ @Override
+ protected IModel<String> newLabelModel(IModel<FileItem> model) {
+ return Model.of(model.getObject().getName());
+ }
+}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java?rev=1779221&r1=1779220&r2=1779221&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemTree.java Tue Jan 17 17:36:44 2017
@@ -19,132 +19,24 @@
package org.apache.openmeetings.web.common.tree;
import org.apache.openmeetings.db.entity.file.FileItem;
-import org.apache.openmeetings.db.entity.file.FileItem.Type;
-import org.apache.openmeetings.db.entity.record.Recording;
-import org.apache.openmeetings.db.entity.record.Recording.Status;
import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.tree.DefaultNestedTree;
import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
-import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.Model;
public class FileItemTree extends DefaultNestedTree<FileItem> {
private static final long serialVersionUID = 1L;
- private final FileTreePanel treePanel;
- private final static String CSS_CLASS_FILE = "file ";
+ final FileTreePanel treePanel;
public FileItemTree(String id, FileTreePanel treePanel, ITreeProvider<FileItem> tp) {
super(id, tp);
this.treePanel = treePanel;
setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
}
-
+
@Override
protected Component newContentComponent(String id, IModel<FileItem> node) {
- return new Folder<FileItem>(id, this, node) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected Component newLabelComponent(String id, final IModel<FileItem> lm) {
- FileItem r = lm.getObject();
- return Type.Folder == r.getType() || r.getId() == null ? new FolderPanel(id, lm, treePanel) : new FileItemPanel(id, lm, treePanel);
- }
-
- @Override
- protected boolean isSelected() {
- FileItem f = getModelObject(), s = treePanel.getSelected();
- return (s.getId() == null && s.getId() == f.getId() && s.getHash().equals(f.getHash()))
- || (s.getId() != null && s.getId().equals(f.getId()));
- }
-
- @Override
- protected boolean isClickable() {
- return true;
- }
-
- @Override
- protected void onClick(AjaxRequestTarget target) {
- FileItem r = getModelObject();
- treePanel.setSelected(r, target);
- if (Type.Folder == r.getType()) {
- if (getState(r) == State.COLLAPSED) {
- super.onClick(target);
- }
- } else {
- treePanel.update(target, r);
- }
- }
-
- private String getItemStyle(FileItem f, boolean open) {
- StringBuilder style = new StringBuilder("big om-icon ");
- if (f.getId() == null) {
- style.append(CSS_CLASS_FILE).append(f.getHash().indexOf("my") > -1 ? "my" : "public");
- } else {
- if (!f.exists()) {
- style.append("broken ");
- }
- switch(f.getType()) {
- case Folder:
- style.append(CSS_CLASS_FILE).append(open ? "folder-open " : "folder ");
- break;
- case Image:
- style.append(CSS_CLASS_FILE).append("image ");
- break;
- case PollChart:
- style.append(CSS_CLASS_FILE).append("chart ");
- break;
- case WmlFile:
- style.append(CSS_CLASS_FILE).append("wml ");
- break;
- case Video:
- case Recording:
- {
- style.append("recording ");
- if (f instanceof Recording) {
- Status st = ((Recording)f).getStatus();
- if (Status.RECORDING == st || Status.CONVERTING == st) {
- style.append("processing");
- }
- }
- }
- break;
- case Presentation:
- style.append(CSS_CLASS_FILE).append("doc ");
- break;
- default:
- break;
- }
- }
- return style.toString();
- }
-
- @Override
- protected String getOtherStyleClass(FileItem r) {
- return getItemStyle(r, false);
- }
-
- @Override
- protected String getOpenStyleClass() {
- return getItemStyle(getModelObject(), true);
- }
-
- @Override
- protected String getClosedStyleClass() {
- return getItemStyle(getModelObject(), false);
- }
-
- @Override
- protected String getSelectedStyleClass() {
- return "ui-state-active";
- }
-
- @Override
- protected IModel<String> newLabelModel(IModel<FileItem> model) {
- return Model.of(model.getObject().getName());
- }
- };
+ return new FileFolder(id, this, node, treePanel);
}
}