/*
* Copyright 2015 JBoss, by Red Hat, Inc
*
* Licensed 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.uberfire.ext.plugin.client.editor;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import javax.annotation.PostConstruct;
import javax.enterprise.context.Dependent;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.RequiresResize;
import com.google.gwt.user.client.ui.Widget;
import org.gwtbootstrap3.client.ui.ListBox;
import org.uberfire.ext.plugin.model.Framework;
import static org.uberfire.ext.plugin.client.code.CodeList.BODY_HEIGHT;
import static org.uberfire.ext.plugin.client.code.CodeList.DIVIDER;
import static org.uberfire.ext.plugin.client.code.CodeList.INTERCEPTION_POINTS;
import static org.uberfire.ext.plugin.client.code.CodeList.MAIN;
import static org.uberfire.ext.plugin.client.code.CodeList.ON_CLOSE;
import static org.uberfire.ext.plugin.client.code.CodeList.ON_OPEN;
import static org.uberfire.ext.plugin.client.code.CodeList.ON_SHUTDOWN;
import static org.uberfire.ext.plugin.client.code.CodeList.ON_STARTUP;
import static org.uberfire.ext.plugin.client.code.CodeList.TITLE;
@Dependent
public class SplashEditorView
extends RuntimePluginBaseView
implements RequiresResize {
private static ViewBinder uiBinder = GWT.create(ViewBinder.class);
@UiField
FlowPanel htmlPanel;
@UiField
FlowPanel formArea;
@UiField
ListBox framework;
@PostConstruct
public void init() {
initWidget(uiBinder.createAndBindUi(this));
editor.setup(MAIN,
DIVIDER,
ON_OPEN,
ON_CLOSE,
ON_STARTUP,
ON_SHUTDOWN,
DIVIDER,
TITLE,
BODY_HEIGHT,
INTERCEPTION_POINTS);
htmlPanel.add(editor);
}
@Override
protected void setFramework(final Collection<Framework> frameworks) {
if (frameworks != null && !frameworks.isEmpty()) {
final Framework framework = frameworks.iterator().next();
for (int i = 0; i < this.framework.getItemCount(); i++) {
if (this.framework.getItemText(i).equalsIgnoreCase(framework.toString())) {
this.framework.setSelectedIndex(i);
return;
}
}
}
this.framework.setSelectedIndex(0);
}
@Override
protected Collection<Framework> getFrameworks() {
if (framework.getSelectedValue().equalsIgnoreCase("(Framework)")) {
return Collections.emptyList();
}
return new ArrayList<Framework>() {{
add(Framework.valueOf(framework.getSelectedValue().toUpperCase()));
}};
}
@Override
public void onResize() {
htmlPanel.setHeight(getParent().getParent().getOffsetHeight() + "px");
editor.onResize();
}
interface ViewBinder
extends
UiBinder<Widget, SplashEditorView> {
}
}