net.tirasa.hct.editor.HCTPerspective.java Source code

Java tutorial

Introduction

Here is the source code for net.tirasa.hct.editor.HCTPerspective.java

Source

/*
 * Copyright (C) 2012 Tirasa
 *
 * 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.tirasa.hct.editor;

import org.apache.wicket.ResourceReference;
import org.apache.wicket.extensions.breadcrumb.BreadCrumbBar;
import org.apache.wicket.extensions.breadcrumb.IBreadCrumbModelListener;
import org.apache.wicket.extensions.breadcrumb.IBreadCrumbParticipant;
import org.apache.wicket.markup.html.CSSPackageResource;
import org.hippoecm.frontend.dialog.IDialogService;
import org.hippoecm.frontend.plugin.IPluginContext;
import org.hippoecm.frontend.plugin.config.IPluginConfig;
import org.hippoecm.frontend.plugins.standards.perspective.Perspective;
import org.hippoecm.frontend.plugins.yui.layout.WireframeBehavior;
import org.hippoecm.frontend.plugins.yui.layout.WireframeSettings;
import org.hippoecm.frontend.service.IconSize;
import net.tirasa.hct.editor.crumbs.HCTBreadCrumbBar;

public class HCTPerspective extends Perspective {

    private static final long serialVersionUID = -5142961480434101722L;

    public HCTPerspective(final IPluginContext context, final IPluginConfig config) {

        super(context, config);
        setOutputMarkupId(true);

        final BreadCrumbBar breadCrumbBar = new HCTBreadCrumbBar("breadCrumbBar");
        add(breadCrumbBar);

        final HCTPanelPlugin adminPanel = new HCTPanelPlugin("panel", context, breadCrumbBar);
        add(adminPanel);
        breadCrumbBar.setActive(adminPanel);
        breadCrumbBar.addListener(new IBreadCrumbModelListener() {

            private static final long serialVersionUID = 4402908466374385050L;

            @Override
            public void breadCrumbActivated(final IBreadCrumbParticipant previousParticipant,
                    final IBreadCrumbParticipant breadCrumbParticipant) {
                redraw();
            }

            @Override
            public void breadCrumbAdded(final IBreadCrumbParticipant breadCrumbParticipant) {
                redraw();
            }

            @Override
            public void breadCrumbRemoved(final IBreadCrumbParticipant breadCrumbParticipant) {
                redraw();
            }
        });

        add(new WireframeBehavior(new WireframeSettings(config.getPluginConfig("layout.wireframe"))));
        add(CSSPackageResource.getHeaderContribution(HCTPerspective.class, "hct-perspective.css"));
    }

    @Override
    public final ResourceReference getIcon(final IconSize type) {
        return new ResourceReference(HCTPerspective.class, "hct-perspective-" + type.getSize() + ".png");
    }

    public final void showDialog(final IDialogService.Dialog dialog) {
        getPluginContext().getService(IDialogService.class.getName(), IDialogService.class).show(dialog);
    }
}