/*
* Copyright 2009 Rodrigo Reyes reyes.rr at gmail dot com
*
* 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 net.kornr.swit.site.quickstart;
import java.awt.Color;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Constructor;
import net.kornr.swit.site.WicketApplication;
import net.kornr.swit.site.jquery.JQuery;
import net.kornr.swit.site.jquery.JQueryTabs;
import net.kornr.swit.site.jquery.tools.JQueryTools;
import net.kornr.swit.site.util.shjs.Shjs;
import net.kornr.swit.util.StringUtils;
import net.kornr.swit.wicket.border.ImageBorder;
import net.kornr.swit.wicket.border.TableImageBorder;
import net.kornr.swit.wicket.border.graphics.RoundedBorderMaker;
import net.kornr.swit.wicket.border.graphics.SizedBorder;
import org.apache.wicket.Component;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.markup.html.IHeaderContributor;
import org.apache.wicket.markup.html.IHeaderResponse;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.ExternalLink;
import org.apache.wicket.markup.html.link.InternalFrame;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.locator.ResourceStreamLocator;
public class ExampleDisplay extends Panel implements IHeaderContributor
{
static private Color s_bgcolor = new Color(0xdaeaef);
static private Long s_border = RoundedBorderMaker.register(20, 6, new Color(0xFFDD88), s_bgcolor);
static private Long s_big = SizedBorder.register(s_border, 1200, 800);
static private Long s_margin = net.kornr.swit.wicket.border.graphics.MarginBorder.register(s_big, 0, 0, 0, 0, s_bgcolor);
private WebMarkupContainer m_java, m_html, m_result;
private JQueryTabs m_tabs = new JQueryTabs();
public ExampleDisplay(String id, IModel<Class> model) {
super(id, model);
TableImageBorder border = new TableImageBorder("border", s_border, s_bgcolor);
this.add(border);
border.add(new Label("classname", model.getObject().getCanonicalName()));
m_java = new WebMarkupContainer("java");
m_html = new WebMarkupContainer("html");
m_result = new WebMarkupContainer("result");
border.add(m_java, m_html, m_result);
ExternalLink javalink;
ExternalLink htmllink;
ExternalLink resultlink;
javalink = new ExternalLink("linkjava", "#");
htmllink = new ExternalLink("linkhtml", "#");
resultlink = new ExternalLink("linkresult", "#");
border.add(javalink, htmllink, resultlink);
m_tabs.add(javalink, m_java);
m_tabs.add(htmllink, m_html);
m_tabs.add(resultlink, m_result);
m_java.add(SourcePage.createIFrame("source", model.getObject(), "java"));
m_html.add(SourcePage.createIFrame("html", model.getObject(), "html"));
try {
Constructor constructor = model.getObject().getConstructor(String.class);
Component comp = (Component) constructor.newInstance("instance");
m_result.add(comp);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
m_result.add(new Label("instance", "Impossible to instanciate " + model.getObject().getCanonicalName()));
}
}
public void renderHead(IHeaderResponse response) {
response.renderJavascriptReference(JQuery.getReference());
response.renderJavascriptReference(JQueryTools.getReference());
m_tabs.configure(response);
}
}