/*
* 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.backend;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.apache.commons.io.IOUtils;
import org.uberfire.backend.vfs.Path;
import org.uberfire.ext.plugin.model.CodeType;
import org.uberfire.ext.plugin.model.Framework;
import org.uberfire.ext.plugin.model.Language;
import org.uberfire.ext.plugin.model.PluginSimpleContent;
import org.uberfire.ext.plugin.model.PluginType;
public class PluginSamples {
public static final String ANGULAR_TODO_REGISTRY = "angular_todo_registry.txt";
public static final String EMPTY_SCREEN_REGISTRY = "empty_screen_registry.txt";
public static final String SCREEN_WITH_TITLE_REGISTRY = "screen_with_title_registry.txt";
public static final String SCREEN_WITH_TITLE_AND_NAME_REGISTRY = "screen_with_title_and_name_registry.txt";
public static final String SPLASH_SCREEN_REGISTRY = "splash_screen_registry.txt";
private static final String ANGULAR_MAIN = "angular_main.txt";
private static final String ANGULAR_TEMPLATE = "angular_template.txt";
private static final String ANGULAR_CSS = "angular_css.txt";
private static final String SPLASH_TEMPLATE = "splash_template.txt";
private static final String SPLASH_MAIN = "splash_main.txt";
public static PluginSimpleContent getTodoAngularPluginSimpleContent() {
Map<CodeType, String> codeMap = new HashMap<CodeType, String>();
codeMap.put(CodeType.MAIN,
loadSample(ANGULAR_MAIN));
Path path = null;
Set<Framework> frameworks = new HashSet<Framework>();
frameworks.add(Framework.ANGULAR);
PluginSimpleContent plugin = new PluginSimpleContent("Yo",
PluginType.SCREEN,
path,
loadSample(ANGULAR_TEMPLATE),
loadSample(ANGULAR_CSS),
codeMap,
frameworks,
Language.JAVASCRIPT);
return plugin;
}
public static PluginSimpleContent getSplashScreen() {
Map<CodeType, String> codeMap = new HashMap<CodeType, String>();
codeMap.put(CodeType.MAIN,
loadSample(SPLASH_MAIN));
codeMap.put(CodeType.ON_CLOSE,
loadSample(SPLASH_MAIN));
codeMap.put(CodeType.ON_CONCURRENT_COPY,
loadSample(SPLASH_MAIN));
codeMap.put(CodeType.TITLE,
"Title");
Path path = null;
Set<Framework> frameworks = new HashSet<Framework>();
PluginSimpleContent plugin = new PluginSimpleContent("Splash",
PluginType.SPLASH,
path,
loadSample(SPLASH_TEMPLATE),
"",
codeMap,
frameworks,
Language.JAVASCRIPT);
return plugin;
}
public static PluginSimpleContent getEmptyScreen() {
Map<CodeType, String> codeMap = new HashMap<CodeType, String>();
codeMap.put(CodeType.MAIN,
"");
Path path = null;
Set<Framework> frameworks = new HashSet<Framework>();
PluginSimpleContent plugin = new PluginSimpleContent("Yo",
PluginType.SCREEN,
path,
"",
"",
codeMap,
frameworks,
Language.JAVASCRIPT);
return plugin;
}
public static PluginSimpleContent getScreenWithTitle() {
Map<CodeType, String> codeMap = new HashMap<CodeType, String>();
codeMap.put(CodeType.MAIN,
"");
codeMap.put(CodeType.TITLE,
"My Title");
Path path = null;
Set<Framework> frameworks = new HashSet<Framework>();
PluginSimpleContent plugin = new PluginSimpleContent("ScreenWithTitle",
PluginType.SCREEN,
path,
"",
"",
codeMap,
frameworks,
Language.JAVASCRIPT);
return plugin;
}
public static PluginSimpleContent getScreenWithMainAndTitle() {
Map<CodeType, String> codeMap = new HashMap<CodeType, String>();
codeMap.put(CodeType.MAIN,
"alert('main');");
codeMap.put(CodeType.TITLE,
"My Title");
Path path = null;
Set<Framework> frameworks = new HashSet<Framework>();
PluginSimpleContent plugin = new PluginSimpleContent("ScreenWithTitle",
PluginType.SCREEN,
path,
"",
"",
codeMap,
frameworks,
Language.JAVASCRIPT);
return plugin;
}
public static String loadSample(String file) {
try {
return IOUtils.toString(new PluginSamples().getClass().getResourceAsStream(file),
"UTF-8");
} catch (IOException e) {
return "";
}
}
}