Author: solomax
Date: Fri May 17 19:34:09 2013
New Revision: 1483960
URL: http://svn.apache.org/r1483960
Log:
[OPENMEETINGS-626] Folder rename/select/create works as expected;
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1483960&r1=1483959&r2=1483960&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/record/RecordingsPanel.java
Fri May 17 19:34:09 2013
@@ -25,8 +25,10 @@ import static org.apache.openmeetings.we
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.apache.openmeetings.data.flvrecord.FlvRecordingDao;
import org.apache.openmeetings.data.user.dao.UsersDao;
@@ -45,10 +47,12 @@ import org.apache.wicket.extensions.mark
import org.apache.wicket.extensions.markup.html.repeater.tree.content.Folder;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.repeater.ReuseIfModelsEqualStrategy;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.util.ListModel;
+import org.apache.wicket.model.util.SetModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.wicketstuff.html5.media.MediaSource;
import org.wicketstuff.html5.media.video.Html5Video;
@@ -62,8 +66,10 @@ public class RecordingsPanel extends Use
private final Mp4RecordingResourceReference mp4res = new
Mp4RecordingResourceReference();
private final OggRecordingResourceReference oggres = new
OggRecordingResourceReference();
private final WebMarkupContainer player;
- private final IModel<List<MediaSource>> playerModel = new
ListModel<MediaSource>(new ArrayList<MediaSource>());
+ private final IModel<List<MediaSource>> playerModel = new
ListModel<MediaSource>(new ArrayList<MediaSource>());
+ private final IModel<Set<FlvRecording>> myTreeModel = new
SetModel<FlvRecording>(new HashSet<FlvRecording>());
private IModel<FlvRecording> rm = new
CompoundPropertyModel<FlvRecording>(new FlvRecording());
+ private RecordingTree selected;
public RecordingsPanel(String id) {
super(id);
@@ -82,6 +88,8 @@ public class RecordingsPanel extends Use
f.setIsImage(false);
f.setIsPresentation(false);
f.setIsRecording(true);
+ long parentId =
rm.getObject().getFlvRecordingId();
+ f.setParentFileExplorerItemId(parentId > 0 ?
parentId : 0);
f.setOwnerId(rm.getObject().getOwnerId());
getBean(FlvRecordingDao.class).updateFlvRecording(f);
target.add(trees);
@@ -96,8 +104,8 @@ public class RecordingsPanel extends Use
}
}));
add(trees
- .add(new RecordingTree("myrecordings", new
MyRecordingTreeProvider()))
- .add(new RecordingTree("publicrecordings", new
PublicRecordingTreeProvider()))
+ .add(new RecordingTree("myrecordings", new
MyRecordingTreeProvider(), myTreeModel))
+ .add(new RecordingTree("publicrecordings", new
PublicRecordingTreeProvider(), null))
.setOutputMarkupId(true)
);
add(new Label("homeSize", ""));
@@ -129,8 +137,9 @@ public class RecordingsPanel extends Use
class RecordingTree extends DefaultNestedTree<FlvRecording> {
private static final long serialVersionUID =
2527395034256868022L;
- public RecordingTree(String id, ITreeProvider<FlvRecording> tp)
{
- super(id, tp);
+ public RecordingTree(String id, ITreeProvider<FlvRecording> tp,
IModel<Set<FlvRecording>> model) {
+ super(id, tp, model);
+ setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
}
@Override
@@ -144,11 +153,20 @@ public class RecordingsPanel extends Use
if (r.getIsFolder() != null &&
r.getIsFolder()) {
return new
AjaxEditableLabel<String>(id, newLabelModel(lm)) {
private static final
long serialVersionUID = -6631089550858911148L;
-
+
+ @Override
+ protected void
onSubmit(AjaxRequestTarget target) {
+
super.onSubmit(target);
+ FlvRecording r
= getModelObject();
+
r.setFileName(getEditor().getModelObject());
+
getBean(FlvRecordingDao.class).updateFlvRecording(r);
+ }
+
@Override
public void
onEdit(AjaxRequestTarget target) {
- // TODO
Auto-generated method stub
-
super.onEdit(target);
+ if
(isSelected()) {
+
super.onEdit(target);
+ }
}
};
} else {
@@ -157,6 +175,11 @@ public class RecordingsPanel extends Use
}
@Override
+ protected boolean isSelected() {
+ return
getModelObject().getFlvRecordingId() == rm.getObject().getFlvRecordingId();
+ }
+
+ @Override
protected boolean isClickable() {
return true;
}
@@ -164,7 +187,13 @@ public class RecordingsPanel extends Use
@Override
protected void onClick(AjaxRequestTarget
target) {
FlvRecording r = getModelObject();
+ FlvRecording _prev = rm.getObject();
rm.setObject(r);
+ if (selected != null && _prev != null) {
+ selected.updateBranch(_prev,
target);
+ selected.updateNode(_prev,
target);
+ }
+ selected = RecordingTree.this;
if (r.getIsFolder() == null ||
r.getIsFolder()) {
super.onClick(target);
} else {
@@ -217,7 +246,7 @@ public class RecordingsPanel extends Use
} else if (r.getFlvRecordingId() == -1)
{
style =
"public-recordings-icon";
} else {
- style =
super.getOpenStyleClass();
+ style =
super.getClosedStyleClass();
}
return style;
}