/**
*
*/
package org.korsakow.domain.k3.importer.task;
import java.util.ArrayList;
import java.util.Collection;
import org.korsakow.domain.InterfaceFactory;
import org.korsakow.domain.WidgetFactory;
import org.korsakow.domain.interf.IInterface;
import org.korsakow.domain.interf.IWidget;
import org.korsakow.domain.k3.K3Interface;
import org.korsakow.domain.k3.K3Widget;
import org.korsakow.domain.k3.importer.K3ImportException;
import org.korsakow.domain.k3.importer.K3ImportReport;
import org.korsakow.ide.lang.LanguageBundle;
import org.korsakow.ide.resources.WidgetType;
import org.korsakow.ide.task.AbstractTask;
import org.korsakow.ide.task.TaskException;
import org.korsakow.ide.util.StrongReference;
public class K3ConvertInterfaceTask extends AbstractTask
{
private final K3ImportReport report;
private final StrongReference<K3Interface> k3Interface;
private final StrongReference<IInterface> k5InterfaceRef;
public K3ConvertInterfaceTask(StrongReference<K3Interface> k3Interface, K3ImportReport report, StrongReference<IInterface> k5Interface)
{
this.k3Interface = k3Interface;
this.report = report;
k5InterfaceRef = k5Interface;
}
@Override
public String getTitleString()
{
return LanguageBundle.getString("import.task.convertinterface");
}
@Override
public void runTask() throws TaskException
{
if (k3Interface.get() != null)
try {
importInterface(k3Interface.get());
} catch (K3ImportException e) {
throw new TaskException(e);
}
}
private void importInterface(K3Interface k3Interface) throws K3ImportException
{
IInterface k5Interface = InterfaceFactory.createNew();
k5Interface.setName("Interface");
k5Interface.setGridWidth(20);
k5Interface.setGridHeight(20);
Collection<IWidget> k5Widgets = new ArrayList<IWidget>();
int autoLinkCounter = 0;
for (K3Widget k3Widget : k3Interface.widgets)
{
IWidget k5Widget = null;
if (K3Widget.MAIN.equals(k3Widget.type)) {
k5Widget = WidgetFactory.createNew(WidgetType.MainMedia.getId());
} else
if (K3Widget.LOADING.equals(k3Widget.type)) {
report.addUnsupported("Video loading bar Widget", "Widget");
} else
if (K3Widget.PREVIEW.equals(k3Widget.type)) {
k5Widget = WidgetFactory.createNew(WidgetType.SnuAutoLink.getId());
k5Widget.setDynamicProperty("index", autoLinkCounter++);
} else
if (K3Widget.SUBTITLE.equals(k3Widget.type)) {
k5Widget = WidgetFactory.createNew(WidgetType.Subtitles.getId());
} else
if (K3Widget.INSERTTEXT.equals(k3Widget.type)) {
k5Widget = WidgetFactory.createNew(WidgetType.InsertText.getId());
} else
report.addUnsupported(k3Widget.type, "Widget");
if (k5Widget != null) {
k5Widgets.add(k5Widget);
k5Widget.setX(k3Widget.left);
k5Widget.setY(k3Widget.top);
k5Widget.setWidth(k3Widget.right - k3Widget.left);
k5Widget.setHeight(k3Widget.bottom - k3Widget.top);
}
}
k5Interface.setWidgets(k5Widgets);
k5InterfaceRef.set(k5Interface);
}
}