/*
* Copyright (c) 2010, grossmann
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the jo-widgets.org nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL jo-widgets.org BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
package org.jowidgets.tools.powo;
import org.jowidgets.api.model.item.IMenuBarModel;
import org.jowidgets.api.toolkit.Toolkit;
import org.jowidgets.api.widgets.IButton;
import org.jowidgets.api.widgets.IFrame;
import org.jowidgets.api.widgets.IMenuBar;
import org.jowidgets.api.widgets.IWindow;
import org.jowidgets.api.widgets.blueprint.IDialogBluePrint;
import org.jowidgets.api.widgets.descriptor.IDialogDescriptor;
import org.jowidgets.common.image.IImageConstant;
import org.jowidgets.common.types.Dimension;
import org.jowidgets.util.Assert;
/**
* @deprecated The idea of POWO's (Plain Old Widget Object's) has not been established.
* For that, POWO's will no longer be supported and may removed completely in middle term.
* Feel free to move them to your own open source project.
*/
@Deprecated
public class JoDialog extends Window<IFrame, IDialogBluePrint> implements IFrame {
private JoMenuBar menuBar;
private IMenuBarModel menuBarModel;
private IButton defaultButton;
private Boolean maximized;
private Boolean iconfied;
JoDialog(final IFrame widget) {
super(bluePrint(), widget);
Assert.paramNotNull(widget, "widget");
}
public JoDialog(final String title) {
super(Toolkit.getBluePrintFactory().dialog(title));
}
public JoDialog(final IWindow parent) {
this(parent, Toolkit.getBluePrintFactory().dialog());
}
public JoDialog(final IWindow parent, final String title) {
this(parent, Toolkit.getBluePrintFactory().dialog(title));
}
public JoDialog(final IWindow parent, final IDialogDescriptor setup) {
super(parent, Toolkit.getBluePrintFactory().dialog().setSetup(setup));
}
public JoDialog(final IDialogDescriptor setup) {
super(Toolkit.getBluePrintFactory().dialog().setSetup(setup));
}
public static IDialogBluePrint bluePrint() {
return Toolkit.getBluePrintFactory().dialog();
}
public static IDialogBluePrint bluePrint(final String title) {
return bluePrint().setTitle(title);
}
public static IDialogBluePrint bluePrint(final String title, final IImageConstant icon) {
return bluePrint(title).setIcon(icon);
}
@Override
void initialize(final IFrame widget) {
super.initialize(widget);
if (menuBar != null) {
menuBar.initialize(createMenuBar());
}
if (menuBarModel != null) {
widget.setMenuBar(menuBarModel);
}
if (defaultButton != null) {
getWidget().setDefaultButton(defaultButton);
}
if (maximized != null) {
widget.setMaximized(maximized.booleanValue());
}
if (iconfied != null) {
widget.setIconfied(iconfied.booleanValue());
}
}
public final void setMenuBar(final JoMenuBar menuBar) {
Assert.paramNotNull(menuBar, "menuBar");
if (isInitialized()) {
menuBar.initialize(createMenuBar());
}
else {
if (menuBarModel != null) {
throw new UnsupportedOperationException("This frame has already a menu bar model and is not yet initialized. "
+ "Uninitialized JoFrame's must not have a JoMenuBar and a menu model at the same time. This might be "
+ "supported in future releases.");
}
this.menuBar = menuBar;
}
}
@Override
public IMenuBar createMenuBar() {
if (isInitialized()) {
return getWidget().createMenuBar();
}
else {
if (menuBarModel != null) {
throw new UnsupportedOperationException("This frame has already a menu bar model and is not yet initialized. "
+ "Uninitialized JoFrame's must not have a JoMenuBar and a menu model at the same time. This might be "
+ "supported in future releases.");
}
menuBar = new JoMenuBar();
return menuBar;
}
}
@Override
public IMenuBarModel getMenuBarModel() {
if (isInitialized()) {
return getWidget().getMenuBarModel();
}
else {
if (menuBarModel == null) {
setMenuBar(Toolkit.getModelFactoryProvider().getItemModelFactory().menuBar());
}
return menuBarModel;
}
}
@Override
public void setMenuBar(final IMenuBarModel menuBarModel) {
if (isInitialized()) {
getWidget().setMenuBar(menuBarModel);
}
else {
if (menuBar != null) {
throw new UnsupportedOperationException(
"This frame has already a menu bar (JoMenuBar) and is not yet initialized. "
+ "Uninitialized JoFrame's must not have a JoMenuBar and a menu model at the same time. This might be "
+ "supported in future releases.");
}
this.menuBarModel = menuBarModel;
}
}
@Override
public void setDefaultButton(final IButton defaultButton) {
if (isInitialized()) {
getWidget().setDefaultButton(defaultButton);
}
else {
this.defaultButton = defaultButton;
}
}
@Override
public void setMinSize(final Dimension minSize) {
getWidget().setMinSize(minSize);
}
@Override
public void setMinSize(final int width, final int height) {
getWidget().setMinSize(width, height);
}
@Override
public void setTitle(final String title) {
if (isInitialized()) {
getWidget().setDefaultButton(defaultButton);
}
else {
getBluePrint().setTitle(title);
}
}
@Override
public void setMaximized(final boolean maximized) {
if (isInitialized()) {
getWidget().setMaximized(maximized);
}
else {
this.maximized = Boolean.valueOf(maximized);
}
}
@Override
public boolean isMaximized() {
if (isInitialized()) {
return getWidget().isMaximized();
}
else {
return maximized != null ? maximized.booleanValue() : false;
}
}
@Override
public void setIconfied(final boolean iconfied) {
if (isInitialized()) {
getWidget().setIconfied(iconfied);
}
else {
this.iconfied = Boolean.valueOf(iconfied);
}
}
@Override
public boolean isIconfied() {
if (isInitialized()) {
return getWidget().isIconfied();
}
else {
return iconfied != null ? iconfied.booleanValue() : false;
}
}
public static JoDialog toJoDialog(final IFrame widget) {
Assert.paramNotNull(widget, "widget");
if (widget instanceof JoDialog) {
return (JoDialog) widget;
}
else {
return new JoDialog(widget);
}
}
}