Package org.dyno.visual.swing.widgets

Source Code of org.dyno.visual.swing.widgets.JTabbedPaneAdapter

/************************************************************************************
* Copyright (c) 2008 William Chen.                                                 *
*                                                                                  *
* All rights reserved. This program and the accompanying materials are made        *
* available under the terms of the Eclipse Public License v1.0 which accompanies   *
* this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html *
*                                                                                  *
* Use is subject to the terms of Eclipse Public License v1.0.                      *
*                                                                                  *
* Contributors:                                                                    *
*     William Chen - initial API and implementation.                               *
************************************************************************************/

package org.dyno.visual.swing.widgets;

import java.awt.Component;
import java.awt.Dimension;

import javax.swing.JComponent;
import javax.swing.JTabbedPane;

import org.dyno.visual.swing.plugin.spi.CompositeAdapter;
import org.dyno.visual.swing.plugin.spi.WidgetAdapter;

@SuppressWarnings("unchecked")
public class JTabbedPaneAdapter extends CompositeAdapter {
  public JTabbedPaneAdapter() {
    super(null);
  }

  @Override
  protected Component createWidget() {
    JTabbedPane tab = new JTabbedPane();
    Dimension size = new Dimension(100, 100);
    tab.setSize(size);
    tab.doLayout();
    tab.validate();
    return tab;
  }


  @Override
  public boolean allowChildResize(Component child) {
    return false;
  }

  @Override
  public Component getChild(int index) {
    JTabbedPane tp = (JTabbedPane) getWidget();
    return (JComponent) tp.getComponentAt(index);
  }

  @Override
  public int getChildCount() {
    JTabbedPane tp = (JTabbedPane) getWidget();
    return tp.getComponentCount();
  }

  @Override
  public int getIndexOfChild(Component child) {
    JTabbedPane tp = (JTabbedPane) getWidget();
    return tp.indexOfComponent(child);
  }

  @Override
  public boolean isChildVisible(Component child) {
    JTabbedPane tp = (JTabbedPane) getWidget();
    return child == tp.getSelectedComponent();
  }

  @Override
  public void showChild(Component widget) {
    JTabbedPane tp = (JTabbedPane) getWidget();
    tp.setSelectedComponent(widget);
  }

  @Override
  public JComponent cloneWidget() {
    JTabbedPane tp = (JTabbedPane) getWidget();
    JTabbedPane copy = (JTabbedPane) super.cloneWidget();
    int count = tp.getTabCount();
    for (int i = 0; i < count; i++) {
      JComponent child = (JComponent) tp.getComponentAt(i);
      WidgetAdapter cAdapter = WidgetAdapter.getWidgetAdapter(child);
      copy.addTab(tp.getTitleAt(i), cAdapter.cloneWidget());
    }
    return copy;
  }


  @Override
  protected JComponent newWidget() {
    return new JTabbedPane();
  }

  @Override
  public void addChildByConstraints(Component child, Object constraints) {
    if (constraints != null) {
      JTabbedPane jtp = (JTabbedPane) getWidget();
      jtp.addTab((String) constraints, child);
    }
  }

  @Override
  public Object getChildConstraints(Component child) {
    JTabbedPane jtp = (JTabbedPane) getWidget();
    int index = jtp.indexOfComponent(child);
    if (index != -1)
      return jtp.getTitleAt(index);
    else
      return null;
  }
  @Override
  public Class getWidgetClass() {
    return JTabbedPane.class;
  }
}

TOP

Related Classes of org.dyno.visual.swing.widgets.JTabbedPaneAdapter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.