Author: solomax
Date: Thu Sep 11 04:16:36 2014
New Revision: 1624190
URL: http://svn.apache.org/r1624190
Log:
[OPENMEETINGS-1041] drag&drop in recordings is improved;
Modified:
openmeetings/branches/3.0.x/ivy.xml
openmeetings/branches/3.0.x/src/main/webapp/css/theme.css
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
Modified: openmeetings/branches/3.0.x/ivy.xml
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/ivy.xml?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/ivy.xml (original)
+++ openmeetings/branches/3.0.x/ivy.xml Thu Sep 11 04:16:36 2014
@@ -226,52 +226,52 @@
<dependency org="org.simpleframework" name="simple-xml"
rev="2.7" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-request"
rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-request"
rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-util"
rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-util"
rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-core"
rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-core"
rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-auth-roles"
rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-auth-roles"
rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-ioc"
rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-ioc"
rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-extensions"
rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-extensions"
rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-datetime"
rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-datetime"
rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
<dependency org="joda-time" name="joda-time" rev="2.3"
conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket" name="wicket-devutils"
rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.apache.wicket" name="wicket-devutils"
rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket"
name="wicket-native-websocket-core" rev="6.16.0" conf="openmeetings->*"
transitive="false">
+ <dependency org="org.apache.wicket"
name="wicket-native-websocket-core" rev="6.17.0" conf="openmeetings->*"
transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.apache.wicket"
name="wicket-native-websocket-tomcat" rev="6.16.0" conf="openmeetings->*"
transitive="false">
+ <dependency org="org.apache.wicket"
name="wicket-native-websocket-tomcat" rev="6.17.0" conf="openmeetings->*"
transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-jquery-ui-core" rev="6.16.0" conf="openmeetings->*"
transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-jquery-ui-core" rev="6.17.0" conf="openmeetings->*"
transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-jquery-ui" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-jquery-ui" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-jquery-ui-calendar" rev="6.16.0" conf="openmeetings->*"
transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-jquery-ui-calendar" rev="6.17.0" conf="openmeetings->*"
transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-jquery-ui-plugins" rev="6.16.0" conf="openmeetings->*"
transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-jquery-ui-plugins" rev="6.17.0" conf="openmeetings->*"
transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-kendo-ui" rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="com.googlecode.wicket-jquery-ui"
name="wicket-kendo-ui" rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
<dependency org="ro.fortsoft.wicket.dashboard"
name="wicket-dashboard-core" rev="0.10" conf="openmeetings->*"
transitive="false">
@@ -280,13 +280,10 @@
<dependency org="com.google.code.gson" name="gson" rev="2.2.4"
conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
- <dependency org="com.github.svenmeier.wicket-dnd"
name="wicket-dnd" rev="0.6.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.wicketstuff"
name="wicketstuff-urlfragment" rev="6.17.0" conf="openmeetings->*"
transitive="false">
<include type="jar" />
</dependency>
- <dependency org="org.wicketstuff"
name="wicketstuff-urlfragment" rev="6.16.0" conf="openmeetings->*"
transitive="false">
- <include type="jar" />
- </dependency>
- <dependency org="org.wicketstuff" name="wicketstuff-html5"
rev="6.16.0" conf="openmeetings->*" transitive="false">
+ <dependency org="org.wicketstuff" name="wicketstuff-html5"
rev="6.17.0" conf="openmeetings->*" transitive="false">
<include type="jar" />
</dependency>
<dependency org="com.vaynberg.wicket.select2"
name="wicket-select2" rev="2.2.3" conf="openmeetings->*" transitive="false">
Modified: openmeetings/branches/3.0.x/src/main/webapp/css/theme.css
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/webapp/css/theme.css?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
--- openmeetings/branches/3.0.x/src/main/webapp/css/theme.css (original)
+++ openmeetings/branches/3.0.x/src/main/webapp/css/theme.css Thu Sep 11
04:16:36 2014
@@ -288,6 +288,14 @@ html, body {
width: 250px;
border: 1px solid #ccc;
}
+.trash-toolbar {
+ font-weight: bold;
+ line-height: 20px;
+ color: transparent;
+}
+.trash-toolbar-hover {
+ color: inherit;
+}
.recording .files .trees {
min-height: 400px;
max-height: 600px;
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
Thu Sep 11 04:16:36 2014
@@ -340,7 +340,7 @@ public class InstallWizard extends Wizar
);
} else {
progressBar.setModelObject(Application.get()._getBean(ImportInitvalues.class).getProgress());
- progressBar.respond(target);
+ progressBar.refresh(target);
//TODO uncomment later
target.add(value);
//TODO add current step result
as info
}
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingItemPanel.java
Thu Sep 11 04:16:36 2014
@@ -33,18 +33,18 @@ import org.apache.wicket.model.IModel;
public class RecordingItemPanel extends RecordingPanel {
private static final long serialVersionUID = 1L;
- public RecordingItemPanel(String id, final IModel<FlvRecording> model,
final RecordingErrorsDialog errorsDialog) {
- super(id, model);
+ public RecordingItemPanel(String id, final IModel<FlvRecording> model,
final RecordingsPanel treePanel) {
+ super(id, model, treePanel);
FlvRecording r = model.getObject();
long errorCount =
getBean(FlvRecordingLogDao.class).countErrors(r.getFlvRecordingId());
boolean visible = errorCount != 0 || (Status.PROCESSING !=
r.getStatus() && !isRecordingExists(r.getFileHash() + MP4_EXTENSION));
- item.add(new WebMarkupContainer("errors").add(new
AjaxEventBehavior("click") {
+ drag.add(new WebMarkupContainer("errors").add(new
AjaxEventBehavior("click") {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
- errorsDialog.setDefaultModel(model);
- errorsDialog.open(target);
+ treePanel.errorsDialog.setDefaultModel(model);
+ treePanel.errorsDialog.open(target);
}
}).setVisible(visible));
}
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.html
Thu Sep 11 04:16:36 2014
@@ -20,6 +20,6 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <div wicket:id="item" class="recording item"><span wicket:id="name"
class="name"></span><wicket:child /></div>
+ <div wicket:id="drop" class="recording item"><div
wicket:id="drag"><wicket:child /><span wicket:id="name"
class="name"></span></div></div>
</wicket:panel>
</html>
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingPanel.java
Thu Sep 11 04:16:36 2014
@@ -22,7 +22,10 @@ import static org.apache.openmeetings.we
import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
import org.apache.openmeetings.db.entity.record.FlvRecording;
+import org.apache.wicket.Component;
+import org.apache.wicket.MarkupContainer;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@@ -30,17 +33,67 @@ import org.apache.wicket.markup.html.pan
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import wicketdnd.theme.WindowsTheme;
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.interaction.draggable.Draggable;
+import com.googlecode.wicket.jquery.ui.interaction.droppable.Droppable;
public class RecordingPanel extends Panel {
private static final long serialVersionUID = 1L;
- protected final WebMarkupContainer item = new
WebMarkupContainer("item");
+ protected final MarkupContainer drop;
+ protected final MarkupContainer drag;
- public RecordingPanel(String id, final IModel<FlvRecording> model) {
+ public RecordingPanel(String id, final IModel<FlvRecording> model,
final RecordingsPanel treePanel) {
super(id, model);
FlvRecording r = model.getObject();
- add(new WindowsTheme());
- item.add(r.isFolder() ? new AjaxEditableLabel<String>("name",
Model.of(model.getObject().getFileName())) {
+ drop = r.isFolder() ? new Droppable<FlvRecording>("drop",
model) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onConfigure(JQueryBehavior behavior) {
+ super.onConfigure(behavior);
+ behavior.setOption("hoverClass",
Options.asString("ui-state-hover"));
+ behavior.setOption("accept",
Options.asString(".recorditem"));
+ }
+
+ @Override
+ public void onDrop(AjaxRequestTarget target, Component
component) {
+ Object o = component.getDefaultModelObject();
+ if (o instanceof FlvRecording) {
+ FlvRecording p =
(FlvRecording)drop.getDefaultModelObject();
+ FlvRecording f = (FlvRecording)o;
+ long pid = p.getFlvRecordingId();
+ //FIXME parent should not be moved to
child !!!!!!!
+ if (pid == f.getFlvRecordingId()) {
+ return;
+ }
+ f.setParentFileExplorerItemId(pid > 0 ?
pid : null);
+ f.setOwnerId(p.getOwnerId());
+ f.setRoom_id(p.getRoom_id());
+
f.setOrganization_id((p).getOrganization_id());
+
getBean(FlvRecordingDao.class).update(f);
+ }
+ target.add(treePanel.trees); //FIXME add
correct refresh
+ }
+ } : new WebMarkupContainer("drop");
+ if (r.getFlvRecordingId() < 1) {
+ drag = new WebMarkupContainer("drag");
+ } else {
+ Draggable<FlvRecording> d = new
Draggable<FlvRecording>("drag", model) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onConfigure(JQueryBehavior
behavior) {
+ super.onConfigure(behavior);
+ behavior.setOption("revert",
"treeRevert");
+ behavior.setOption("cursor",
Options.asString("move"));
+ }
+ };
+ d.setContainment(".file.tree");
+ d.add(AttributeAppender.append("class", "recorditem"));
+ drag = d;
+ }
+ drag.add(r.getFlvRecordingId() < 1 || !r.isFolder() ? new
Label("name", r.getFileName()) : new AjaxEditableLabel<String>("name",
Model.of(model.getObject().getFileName())) {
private static final long serialVersionUID = 1L;
@Override
@@ -51,16 +104,16 @@ public class RecordingPanel extends Pane
@Override
protected void onSubmit(AjaxRequestTarget target) {
super.onSubmit(target);
- FlvRecording r = model.getObject();
- r.setFileName(getEditor().getModelObject());
- getBean(FlvRecordingDao.class).update(r);
+ FlvRecording fi = model.getObject();
+ fi.setFileName(getEditor().getModelObject());
+ getBean(FlvRecordingDao.class).update(fi);
}
@Override
public void onEdit(AjaxRequestTarget target) {
super.onEdit(target);
}
- } : new Label("name", r.getFileName()));
- add(item.setOutputMarkupId(true));
+ });
+ add(drop.add(drag).setOutputMarkupId(true));
}
}
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.html
Thu Sep 11 04:16:36 2014
@@ -20,16 +20,25 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
+ <script type="text/javascript">
+ function treeRevert(dropped) {
+ $('#tree-anchor').get(0).scrollIntoView();
+ this.parent().parent().get(0).scrollIntoView();
+ return !dropped;
+ }
+ </script>
<table class="recording">
<tr>
- <td valign="top" class="files">
- <div class="icons clear">
- <span wicket:id="create"
class="folder-create om-icon align-left clickable"></span>
- <span wicket:id="refresh"
class="refresh om-icon align-left clickable"></span>
- <span wicket:id="trash" class="trash
om-icon align-right clickable" wicket:ommessage="title:705"><span
style="display: block;" wicket:id="drop-center"> </span></span>
+ <td valign="top" class="files file tree">
+ <div class="icons clear trash-toolbar"
wicket:id="trash-toolbar">
+ <span wicket:id="create"
class="folder-create om-icon align-left clickable"
wicket:ommessage="title:703"></span>
+ <span wicket:id="refresh"
class="refresh om-icon align-left clickable"
wicket:ommessage="title:704"></span>
+ <span wicket:id="trash" class="trash
om-icon align-right clickable"></span>
+ <span style="padding-left: 20px;"
wicket:ommessage="title:705"><wicket:ommessage key="1224"/></span>
<div class="clear"></div>
</div>
<div wicket:id="tree-container" class="trees">
+ <div id="tree-anchor" style="height:
2px; width: 2px;"></div>
<div wicket:id="tree"></div>
</div>
<div class="sizes" wicket:id="sizes">
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java?rev=1624190&r1=1624189&r2=1624190&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
Thu Sep 11 04:16:36 2014
@@ -55,23 +55,20 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.time.Duration;
-import wicketdnd.DragSource;
-import wicketdnd.DropTarget;
-import wicketdnd.Location;
-import wicketdnd.Operation;
-import wicketdnd.Reject;
-import wicketdnd.Transfer;
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.interaction.droppable.Droppable;
public class RecordingsPanel extends UserPanel {
private static final long serialVersionUID = 1321258690447136958L;
- private final WebMarkupContainer trees = new
WebMarkupContainer("tree-container");
+ final WebMarkupContainer trees = new
WebMarkupContainer("tree-container");
private final WebMarkupContainer sizes = new
WebMarkupContainer("sizes");
private final VideoPlayer video = new VideoPlayer("video");
private final VideoInfo info = new VideoInfo("info");
private final IModel<FlvRecording> rm = new
CompoundPropertyModel<FlvRecording>(new FlvRecording());
private final IModel<String> homeSize = Model.of((String)null);
private final IModel<String> publicSize = Model.of((String)null);
- private final RecordingErrorsDialog errorsDialog = new
RecordingErrorsDialog("errors", Model.of((FlvRecording)null));
+ final RecordingErrorsDialog errorsDialog = new
RecordingErrorsDialog("errors", Model.of((FlvRecording)null));
private RecordingTree selected;
public RecordingsPanel(String id) {
@@ -102,45 +99,49 @@ public class RecordingsPanel extends Use
}
};
add(addFolder);
- add(new WebMarkupContainer("create").add(new
AjaxEventBehavior("onclick") {
+ Droppable<FlvRecording> trashToolbar = new
Droppable<FlvRecording>("trash-toolbar") {
private static final long serialVersionUID = 1L;
@Override
- protected void onEvent(AjaxRequestTarget target) {
- addFolder.open(target);
+ public void onConfigure(JQueryBehavior behavior) {
+ super.onConfigure(behavior);
+ behavior.setOption("hoverClass",
Options.asString("ui-state-hover trash-toolbar-hover"));
+ behavior.setOption("accept",
Options.asString(".recorditem, .fileitem"));
}
- }));
- add(new WebMarkupContainer("refresh").add(new
AjaxEventBehavior("onclick") {
+
+ @Override
+ public void onDrop(AjaxRequestTarget target, Component
component) {
+ Object o = component.getDefaultModelObject();
+ if (o instanceof FlvRecording) {
+ delete((FlvRecording)o, target);
+ }
+ }
+ };
+ add(trashToolbar);
+ trashToolbar.add(new WebMarkupContainer("create").add(new
AjaxEventBehavior("onclick") {
private static final long serialVersionUID = 1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
- target.add(trees); //FIXME add correct refresh
+ addFolder.open(target);
}
}));
- ConfirmableAjaxLink trash = new ConfirmableAjaxLink("trash",
713) {
+ trashToolbar.add(new WebMarkupContainer("refresh").add(new
AjaxEventBehavior("onclick") {
private static final long serialVersionUID = 1L;
@Override
- public void onClick(AjaxRequestTarget target) {
- long id = rm.getObject().getFlvRecordingId();
- if (id > 0) {
-
getBean(FlvRecordingDao.class).delete(rm.getObject());
- }
+ protected void onEvent(AjaxRequestTarget target) {
target.add(trees); //FIXME add correct refresh
}
- };
- trash.add(new
WebMarkupContainer("drop-center").setOutputMarkupId(true)).add(new
DropTarget(Operation.MOVE) {
+ }));
+ trashToolbar.add(new ConfirmableAjaxLink("trash", 713) {
private static final long serialVersionUID = 1L;
@Override
- public void onDrop(AjaxRequestTarget target, Transfer
transfer, Location location) throws Reject {
- FlvRecording r = transfer.getData();
- getBean(FlvRecordingDao.class).delete(r);
- target.add(trees); //FIXME add correct refresh
+ public void onClick(AjaxRequestTarget target) {
+ delete(rm.getObject(), target);
}
- }.dropCenter("span"));
- add(trash/*.add(new WindowsTheme())*/); //TODO check theme here
+ });
RepeatingView treesView = new RepeatingView("tree");
treesView.add(selected = new
RecordingTree(treesView.newChildId(), new MyRecordingTreeProvider()));
treesView.add(new RecordingTree(treesView.newChildId(), new
PublicRecordingTreeProvider(null, null)));
@@ -161,6 +162,14 @@ public class RecordingsPanel extends Use
add(video, info, errorsDialog);
}
+ void delete(FlvRecording f, AjaxRequestTarget target) {
+ long id = f.getFlvRecordingId();
+ if (id > 0) {
+ getBean(FlvRecordingDao.class).delete(f);
+ }
+ target.add(trees); //FIXME add correct refresh
+ }
+
private void updateSizes() {
RecordingContainerData sizeData =
getBean(FlvRecordingDao.class).getRecordingContainerData(getUserId());
if (sizeData != null) {
@@ -186,40 +195,7 @@ public class RecordingsPanel extends Use
@Override
protected Component newLabelComponent(String
id, final IModel<FlvRecording> lm) {
FlvRecording r = lm.getObject();
- Component result = r.isFolder() ||
r.getFlvRecordingId() < 1 ? new RecordingPanel(id, lm) : new
RecordingItemPanel(id, lm, errorsDialog);
- if (r.getFlvRecordingId() > 0) {
- result.add(new
DragSource(Operation.MOVE) {
- private static final
long serialVersionUID = 1L;
-
- @Override
- public void
onBeforeDrop(Component drag, Transfer transfer) throws Reject {
-
transfer.setData(lm.getObject());
- };
-
- @Override
- public void
onAfterDrop(AjaxRequestTarget target, wicketdnd.Transfer transfer) {
-
transfer.setData(null);
- }
- }.drag("div"));
- }
- if (r.getFlvRecordingId() < 0 ||
r.isFolder()) {
- result.add(new
DropTarget(Operation.MOVE) {
- private static final
long serialVersionUID = 1L;
-
- @Override
- public void
onDrop(AjaxRequestTarget target, Transfer transfer, Location location) throws
Reject {
- FlvRecording p
= lm.getObject();
- long pid =
p.getFlvRecordingId();
- FlvRecording r
= transfer.getData();
-
r.setParentFileExplorerItemId(pid > 0 ? pid : null);
-
r.setOrganization_id(p.getOrganization_id());
-
r.setOwnerId(p.getOwnerId());
-
getBean(FlvRecordingDao.class).update(r);
-
target.add(trees); //FIXME add correct refresh
- }
- }.dropCenter("div"));
- }
- return result;
+ return r.isFolder() ||
r.getFlvRecordingId() < 1 ? new RecordingPanel(id, lm, RecordingsPanel.this) :
new RecordingItemPanel(id, lm, RecordingsPanel.this);
}
@Override
@@ -309,6 +285,7 @@ public class RecordingsPanel extends Use
FlvRecording r = new FlvRecording();
r.setFlvRecordingId(0);
r.setFileName(WebSession.getString(860));
+ r.setFolder(true);
r.setOwnerId(getUserId());
return Arrays.asList(r).iterator();
}
@@ -337,6 +314,7 @@ public class RecordingsPanel extends Use
r.setFlvRecordingId(orgId == null ? -1 : -orgId);
r.setOrganization_id(orgId);
r.setOwnerId(null);
+ r.setFolder(true);
String pub = WebSession.getString(861);
r.setFileName(orgId == null ? pub : String.format("%s
(%s)", pub, name));
return Arrays.asList(r).iterator();