/* * #%L * carewebframework * %% * Copyright (C) 2008 - 2016 Regenstrief Institute, 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. * * This Source Code Form is also subject to the terms of the Health-Related * Additional Disclaimer of Warranty and Limitation of Liability available at * * http://www.carewebframework.org/licensing/disclaimer. * * #L% */ package org.carewebframework.plugin.mockup; import java.io.IOException; import org.apache.commons.lang.StringUtils; import org.carewebframework.shell.plugins.PluginContainer; import org.carewebframework.shell.plugins.PluginController; import org.zkoss.zul.Iframe; /** * Simple component to display third-party UI mockups. */ public class MainController extends PluginController { private static final long serialVersionUID = 1L; private Iframe iframe; private String mockupId; private String mockupType; private final MockupTypeEnumerator mockupTypes; public MainController(MockupTypeEnumerator mockupTypes) throws IOException { this.mockupTypes = mockupTypes; } /** * Register published properties. */ @Override public void onLoad(PluginContainer container) { super.onLoad(container); container.registerProperties(this, "mockupType", "mockupId"); } /** * Refreshes the iframe content. */ @Override public void refresh() { String url = mockupTypes.getUrl(mockupType); if (mockupId == null || url == null) { iframe.setContent(null); return; } iframe.setSrc(String.format(url, mockupId, System.currentTimeMillis())); } /** * Returns the unique identifier for the mockup within the selected framework. * * @return The unique mockup identifier. */ public String getMockupId() { return mockupId; } /** * Sets the unique identifier for the mockup within the selected framework. * * @param mockupId The unique mockup identifier. */ public void setMockupId(String mockupId) { this.mockupId = StringUtils.trimToNull(mockupId); refresh(); } /** * Returns the mockup framework type. * * @return The mockup framework type. */ public String getMockupType() { return mockupType; } /** * Sets the mockup framework type. * * @param mockupType The mockup framework type. */ public void setMockupType(String mockupType) { this.mockupType = mockupType; refresh(); } }