/* * Copyright (C) 2011 Nicolas Peransin. All rights reserved. * Use is subject to license terms. */ package org.mypsycho.swing.app.reflect; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; import java.beans.IntrospectionException; import javax.swing.JDialog; import org.mypsycho.beans.DescriptorExtension; /** * For option view, "pane" property is a direct access to the optionpane * * @author Peransin Nicolas */ public class DialogPaneProperty extends DescriptorExtension { public DialogPaneProperty() throws IntrospectionException { super(JDialog.class, "pane"); } public Object get(Object bean) { Container container = ((JDialog) bean).getContentPane(); if (!(container.getLayout() instanceof BorderLayout)) { return null; } BorderLayout lay = ((BorderLayout) container.getLayout()); return lay.getLayoutComponent(BorderLayout.CENTER); } @Override public Class<?> getPropertyType(boolean collection) { return collection ? null : Component.class; } @Override public boolean isReadable(Object bean, boolean collection) { return !collection; } }