import de.dtele.control.MediaManager;
import de.dtele.control.events.SourceEvent;
import de.dtele.data.ISource;
import de.dtele.net.MediaRequest;
import de.dtele.providers.ProviderManager;
import de.dtele.settings.SettingsManager;
import de.dtele.ui.components.events.ResourceListEvent;
import de.dtele.ui.components.events.SourceInputEvent;
import de.dtele.ui.components.events.SourceListEvent;
import de.dtele.ui.components.events.UploadButtonEvent;
import de.dtele.ui.components.viewer.AudioResourceViewer;
import de.dtele.ui.components.viewer.ImageResourceViewer;
import de.dtele.ui.components.viewer.TextResourceViewer;
import de.dtele.ui.components.viewer.VideoResourceViewer;
import flash.events.Event;
import mx.managers.BrowserManager;
import mx.managers.IBrowserManager;
protected var browserManager:IBrowserManager = BrowserManager.getInstance();
/**
* Provides the enabled state of the upload button
*
* @param source The source to check
* @return Whether upload is possible to the source
*/
protected function uploadButtonEnabledDataProvider(source:ISource):Boolean {
if (!source) { return false; }
return MediaRequest.ADD in source.allowed;
}
/**
* Performs initial setups
*/
protected function onCreationComplete(e:Event):void {
browserManager.init("", "Medienverwaltung");
MediaManager.instance.addEventListener(SourceEvent.SELECTED, this.onSourceSelected);
SettingsManager.instance.setDefault("visibleProperties", ["title", "type", "size"]);
ProviderManager.instance.addProvider("resourceViewer", "image", ImageResourceViewer);
ProviderManager.instance.addProvider("resourceViewer", "text", TextResourceViewer);
ProviderManager.instance.addProvider("resourceViewer", "audio", AudioResourceViewer);
ProviderManager.instance.addProvider("resourceViewer", "video", VideoResourceViewer);
MediaManager.instance.restoreState();
}
/**
* Updates the browser title after source selection
*/
protected function onSourceSelected(e:SourceEvent):void {
var title:String = "Medienverwaltung";
if (e.source) {
title += ": " + e.source.properties.title;
}
browserManager.setTitle(title);
}
/**
* Requests addition of a new source
*/
protected function onSourceInput(e:SourceInputEvent):void {
MediaManager.instance.addSource(e.value);
}
/**
* Updates the selected source
*/
protected function onSourceSelect(e:SourceListEvent):void {
MediaManager.instance.selectedSource = e.source;
}
/**
* Requests removal of a source
*/
protected function onSourceClose(e:SourceListEvent):void {
MediaManager.instance.removeSource(e.source);
}
/**
* Updates the selected resource
*/
protected function onResourceSelected(e:ResourceListEvent):void {
if (e.resource) {
this.focusManager.setFocus(this.resourceViewer);
} else {
this.focusManager.setFocus(null);
}
MediaManager.instance.selectedResource = e.resource;
}
/**
* Requests addition of files after user selection
*/
protected function onUploadButtonFilesSelected(e:UploadButtonEvent):void {
MediaManager.instance.addResources(e.files, MediaManager.instance.selectedSource);
}