亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? draggablecomponentbox.java

?? 修正了jdk1.6中對托盤事件產生異常的bug.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Copyright (C) 2004 NNL Technology AB
 * Visit www.infonode.net for information about InfoNode(R) 
 * products and how to contact NNL Technology AB.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, 
 * MA 02111-1307, USA.
 */

// $Id: DraggableComponentBox.java,v 1.52 2005/12/04 13:46:03 jesper Exp $

package net.infonode.gui.draggable;

import net.infonode.gui.*;
import net.infonode.gui.layout.DirectionLayout;
import net.infonode.gui.panel.SimplePanel;
import net.infonode.util.Direction;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.util.ArrayList;

public class DraggableComponentBox extends SimplePanel {
  private boolean componentBoxEnabled = true;

  private JComponent componentBox;
  private JComponent componentContainer;

  private JComponent outerParentArea = this;
  private Direction componentDirection = Direction.UP;
  private boolean scrollEnabled = false;
  private boolean ensureSelectedVisible;
  private boolean autoSelect = true;
  private boolean descendingSortOrder = true;

  private boolean doReverseSort = false;
  private boolean mustSort = false;

  private int scrollOffset;
  private int iconSize;
  private DraggableComponent selectedComponent;
  private DraggableComponent topComponent;
  private ArrayList listeners;
  private ArrayList draggableComponentList = new ArrayList(10);
  private ArrayList layoutOrderList = new ArrayList(10);

  private ScrollButtonBox scrollButtonBox;

  private boolean useDefaultScrollButtons = true;

  private DraggableComponentListener draggableComponentListener = new DraggableComponentListener() {
    public void changed(DraggableComponentEvent event) {
      if (event.getType() == DraggableComponentEvent.TYPE_MOVED) {
        sortComponentList(!descendingSortOrder);
      }
      fireChangedEvent(event);
    }

    public void selected(DraggableComponentEvent event) {
      doSelectComponent(event.getSource());
    }

    public void dragged(DraggableComponentEvent event) {
      fireDraggedEvent(event);
    }

    public void dropped(DraggableComponentEvent event) {
      ensureSelectedVisible();
      fireDroppedEvent(event);
    }

    public void dragAborted(DraggableComponentEvent event) {
      ensureSelectedVisible();
      fireNotDroppedEvent(event);
    }
  };

  public DraggableComponentBox(int iconSize) {
    this(iconSize, true);
  }

  public DraggableComponentBox(int iconSize, boolean useDefaultScrollButtons) {
    this.iconSize = iconSize;
    this.useDefaultScrollButtons = useDefaultScrollButtons;
    // Fix minimum size when flipping direction
    final DirectionLayout layout = new DirectionLayout(componentDirection == Direction.UP ? Direction.RIGHT : componentDirection == Direction.LEFT
                                                                                                              ?
                                                                                                              Direction.DOWN
                                                                                                              :
                                                                                                              componentDirection == Direction.DOWN ?
                                                                                                              Direction.RIGHT :
                                                                                                              Direction.DOWN) {
      public Dimension minimumLayoutSize(Container parent) {
        Dimension min = super.minimumLayoutSize(parent);
        Dimension pref = super.preferredLayoutSize(parent);
        return componentDirection.isHorizontal() ?
               new Dimension(pref.width, min.height) : new Dimension(min.width, pref.height);
      }

      public void layoutContainer(Container parent) {
        if (DraggableComponentBox.this != null && componentBoxEnabled) {
          //long millis = System.currentTimeMillis();
          doSort();
          super.layoutContainer(parent);
          //System.out.println("Layout: " + (System.currentTimeMillis() - millis));
        }
      }

      public Dimension preferredLayoutSize(Container parent) {
        doSort();
        return super.preferredLayoutSize(parent);
      }
    };

    layout.setLayoutOrderList(layoutOrderList);

    componentBox = new SimplePanel(layout) {
      public boolean isOptimizedDrawingEnabled() {
        return DraggableComponentBox.this != null && getComponentSpacing() >= 0;
      }
    };

    componentBox.addComponentListener(new ComponentAdapter() {
      public void componentResized(ComponentEvent e) {
        //fireChangedEvent();
      }

      public void componentMoved(ComponentEvent e) {
        fireChangedEvent();
      }
    });

    initialize();
  }

  public void addListener(DraggableComponentBoxListener listener) {
    if (listeners == null)
      listeners = new ArrayList(2);

    listeners.add(listener);
  }

  public void removeListener(DraggableComponentBoxListener listener) {
    if (listeners != null) {
      listeners.remove(listener);

      if (listeners.size() == 0)
        listeners = null;
    }
  }

  public void addDraggableComponent(DraggableComponent component) {
    insertDraggableComponent(component, -1);
  }

  public void insertDraggableComponent(DraggableComponent component, int index) {
    component.setLayoutOrderList(layoutOrderList);

    component.addListener(draggableComponentListener);
    if (index < 0) {
      layoutOrderList.add(component.getComponent());
      componentBox.add(component.getComponent());
    }
    else {
      layoutOrderList.add(index, component.getComponent());
      componentBox.add(component.getComponent(), index);
    }

    sortComponentList(!descendingSortOrder);

    draggableComponentList.add(component);
    component.setOuterParentArea(outerParentArea);
    componentBox.revalidate();

    fireAddedEvent(component);
    if (autoSelect && layoutOrderList.size() == 1 && selectedComponent == null && component.isEnabled())
      doSelectComponent(component);

    updateScrollButtons();
  }

  private void updateScrollButtons() {
    if (scrollButtonBox != null) {
      ScrollableBox scrollableBox = (ScrollableBox) componentContainer;
      scrollButtonBox.setButton1Enabled(!scrollableBox.isLeftEnd());
      scrollButtonBox.setButton2Enabled(!scrollableBox.isRightEnd());
    }
  }

  public void insertDraggableComponent(DraggableComponent component, Point p) {
    int componentIndex = getComponentIndexAtPoint(p);
    if (componentIndex != -1 && layoutOrderList.size() > 0)
      insertDraggableComponent(component, componentIndex);
    else
      insertDraggableComponent(component, -1);
  }

  public void selectDraggableComponent(DraggableComponent component) {
    if (component == null) {
      if (selectedComponent != null) {
        DraggableComponent oldSelected = selectedComponent;
        selectedComponent = null;
        fireSelectedEvent(selectedComponent, oldSelected);
        //componentBox.repaint();
      }
    }
    else
      component.select();
  }

  public void removeDraggableComponent(DraggableComponent component) {
    if (component != null && draggableComponentList.contains(component)) {
      //component.abortDrag();
      int index = layoutOrderList.indexOf(component.getComponent());
      component.removeListener(draggableComponentListener);
      if (component == topComponent)
        topComponent = null;
      if (layoutOrderList.size() > 1 && selectedComponent != null) {
        if (selectedComponent == component) {
          if (autoSelect) {
            int selectIndex = findSelectableComponentIndex(index);
            if (selectIndex > -1)
              selectDraggableComponent(findDraggableComponent((Component) layoutOrderList.get(selectIndex)));
            else
              selectedComponent = null;
          }
          else {
            selectDraggableComponent(null);
          }
        }
      }
      else {
        if (selectedComponent != null) {
          DraggableComponent oldSelected = selectedComponent;
          selectedComponent = null;
          fireSelectedEvent(selectedComponent, oldSelected);
        }
      }
      draggableComponentList.remove(component);
      layoutOrderList.remove(component.getComponent());
      componentBox.remove(component.getComponent());
      componentBox.revalidate();
      //componentBox.validate();
      component.setLayoutOrderList(null);

      sortComponentList(!descendingSortOrder);

      updateScrollButtons();

      fireRemovedEvent(component);
    }
  }

  public boolean containsDraggableComponent(DraggableComponent component) {
    return draggableComponentList.contains(component);
  }

  public DraggableComponent getSelectedDraggableComponent() {
    return selectedComponent;
  }

  public int getDraggableComponentCount() {
    return layoutOrderList.size();
  }

  public DraggableComponent getDraggableComponentAt(int index) {
    return index < layoutOrderList.size() ? findDraggableComponent((Component) layoutOrderList.get(index)) : null;
  }

  public int getDraggableComponentIndex(DraggableComponent component) {
    return layoutOrderList.indexOf(component.getComponent());
  }

  public Object[] getDraggableComponents() {
    return draggableComponentList.toArray();
  }

  public Component[] getBoxComponents() {
    return componentBox.getComponents();
  }

  public boolean getDepthSortOrder() {
    return descendingSortOrder;
  }

  public void setDepthSortOrder(boolean descending) {
    if (descending != this.descendingSortOrder) {
      this.descendingSortOrder = descending;
      sortComponentList(!descending);
      doSort();
    }
  }

  public boolean isScrollEnabled() {
    return scrollEnabled;
  }

  public void setScrollEnabled(boolean scrollEnabled) {
    if (scrollEnabled != this.scrollEnabled) {
      this.scrollEnabled = scrollEnabled;
      initialize();
    }
  }

  public int getScrollOffset() {
    return scrollOffset;
  }

  public void setScrollOffset(int scrollOffset) {
    if (scrollOffset != this.scrollOffset) {
      this.scrollOffset = scrollOffset;
      if (scrollEnabled)
        ((ScrollableBox) componentContainer).setScrollOffset(scrollOffset);
    }
  }

  public int getComponentSpacing() {
    return getDirectionLayout().getComponentSpacing();
  }

  public void setComponentSpacing(int componentSpacing) {
    if (componentSpacing != getDirectionLayout().getComponentSpacing()) {
      if (getComponentSpacing() < 0 && componentSpacing >= 0) {
        DraggableComponent tmp = topComponent;
        sortComponentList(false);
        topComponent = tmp;
      }
      getDirectionLayout().setComponentSpacing(componentSpacing);
      sortComponentList(!descendingSortOrder);
      componentBox.revalidate();
    }
  }

  public boolean isEnsureSelectedVisible() {
    return ensureSelectedVisible;
  }

  public void setEnsureSelectedVisible(boolean ensureSelectedVisible) {
    this.ensureSelectedVisible = ensureSelectedVisible;
  }

  public boolean isAutoSelect() {
    return autoSelect;
  }

  public void setAutoSelect(boolean autoSelect) {
    this.autoSelect = autoSelect;
  }

  public Direction getComponentDirection() {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久久久中文字幕| 美女精品一区二区| 亚洲成人自拍偷拍| 美女视频一区二区三区| 成人久久18免费网站麻豆| 欧美性视频一区二区三区| 久久精品视频网| 亚洲一区二区三区四区的| 粉嫩欧美一区二区三区高清影视 | 国内精品伊人久久久久av影院| 在线不卡中文字幕| 成人黄色在线看| 亚洲日本护士毛茸茸| 欧美日韩电影在线| 亚洲成人一二三| 精品乱人伦一区二区三区| 极品少妇一区二区三区精品视频| www成人在线观看| 91精品国产综合久久香蕉麻豆| 亚洲一区二区三区国产| 懂色av中文一区二区三区| 欧美一区二区观看视频| 亚洲在线成人精品| 99精品视频中文字幕| 国产午夜亚洲精品理论片色戒 | 视频一区国产视频| 一本色道久久综合亚洲aⅴ蜜桃| 久久综合色鬼综合色| 日日夜夜精品免费视频| 精品视频1区2区| 亚洲精选视频免费看| 国产老女人精品毛片久久| 精品乱人伦小说| 免费av成人在线| 欧美一区二区三区思思人| 亚洲成人动漫在线免费观看| 欧美色偷偷大香| 午夜精彩视频在线观看不卡| 欧美日本国产一区| 天堂成人国产精品一区| 欧美日韩高清在线| 三级久久三级久久久| 91精品国产福利在线观看 | 美女国产一区二区三区| 日韩色视频在线观看| 麻豆91精品视频| 精品sm捆绑视频| 国产精品一区二区久久不卡 | 国产在线视频一区二区| 日韩一区二区三区视频| 久久成人综合网| 欧美成人伊人久久综合网| 久草精品在线观看| 国产无遮挡一区二区三区毛片日本| 国内久久精品视频| 国产精品久久久久影视| 日韩成人精品在线| 国产91精品一区二区麻豆网站| 在线区一区二视频| 精品乱人伦一区二区三区| 精品国产91亚洲一区二区三区婷婷| 日韩视频在线你懂得| 中文字幕av一区二区三区免费看| 亚洲欧美视频在线观看| 免费观看久久久4p| 国产99久久久国产精品| 欧美色网一区二区| 99国产精品国产精品毛片| 91精品国产91热久久久做人人| 蜜臀久久久99精品久久久久久| 久久这里只精品最新地址| 成人av片在线观看| 亚洲成人动漫在线免费观看| 日韩欧美一级二级三级久久久| 福利一区二区在线| 亚洲成人免费影院| 久久久亚洲精品一区二区三区| 92精品国产成人观看免费| 日韩高清在线电影| 国产精品美女一区二区在线观看| 欧美在线不卡视频| 国产精品自产自拍| 午夜av一区二区| 国产嫩草影院久久久久| 欧美日韩夫妻久久| 99久久99久久精品免费看蜜桃| 三级影片在线观看欧美日韩一区二区| 久久综合色之久久综合| 在线视频综合导航| 国产成人综合在线| 首页综合国产亚洲丝袜| 国产精品久久99| 久久综合999| 3d动漫精品啪啪1区2区免费| 99re这里只有精品6| 国产原创一区二区三区| 亚洲国产婷婷综合在线精品| 国产精品丝袜一区| 日韩欧美成人一区| 欧美日本在线观看| 91在线播放网址| 国产jizzjizz一区二区| 美国三级日本三级久久99| 一区二区三区四区高清精品免费观看| 国产亚洲欧洲997久久综合| 欧美一级精品大片| 欧美日韩国产123区| 在线观看成人免费视频| a亚洲天堂av| 成人免费高清视频在线观看| 国产一二精品视频| 麻豆成人久久精品二区三区小说| 夜夜嗨av一区二区三区中文字幕| 国产精品久久久久久亚洲毛片| 中文字幕欧美日韩一区| 久久久久97国产精华液好用吗| 久久免费精品国产久精品久久久久| 成人免费黄色在线| 奇米在线7777在线精品| 国产精品视频在线看| 欧美久久久影院| 欧美亚洲日本一区| 国产成+人+日韩+欧美+亚洲| 亚洲444eee在线观看| 亚洲三级免费电影| 中文字幕av资源一区| 国产一区二区三区免费播放| 日韩高清欧美激情| 美女精品一区二区| 国产精品一区二区在线观看网站| 麻豆91小视频| 国产乱码精品一品二品| 国产不卡视频在线播放| 福利一区二区在线| 91欧美激情一区二区三区成人| 99视频精品免费视频| 99re在线精品| 欧美高清激情brazzers| 欧美另类videos死尸| 91精品国产福利在线观看| 日韩一区二区三区电影 | 成人黄色在线视频| 色欧美88888久久久久久影院| 在线国产电影不卡| 欧美日韩一卡二卡三卡| 欧美成人一区二区| ●精品国产综合乱码久久久久| 亚洲色图欧美在线| 日日欢夜夜爽一区| 国产一区二区三区免费看| 91色porny| 欧美一区三区四区| 久久精品一区二区三区不卡| 日韩理论片在线| 午夜精品福利视频网站| 国产精品一区三区| 色av综合在线| 欧美mv日韩mv国产| 亚洲日本电影在线| 男人的j进女人的j一区| 粉嫩aⅴ一区二区三区四区五区| 91久久香蕉国产日韩欧美9色| 91精品国产综合久久久蜜臀图片| 久久久久久毛片| 亚洲综合在线视频| 韩国理伦片一区二区三区在线播放 | 99久久精品99国产精品| 欧美一区二区三区日韩视频| 中文字幕+乱码+中文字幕一区| 亚洲成人一二三| 97久久人人超碰| 精品国产乱码久久| 亚洲综合一区在线| 国产精品系列在线播放| 欧美日韩成人一区| 国产精品不卡一区| 九色|91porny| 欧美四级电影网| 国产精品美女久久久久久久网站| 国产亚洲人成网站| 国内精品伊人久久久久av影院| 国产精品入口麻豆原神| 亚洲欧美国产三级| 色噜噜狠狠一区二区三区果冻| 国产日韩av一区二区| 国产99久久久国产精品潘金网站| 久久免费的精品国产v∧| 久久精品国产99久久6| 亚洲精品在线电影| 久草热8精品视频在线观看| 精品国产凹凸成av人导航| 日日摸夜夜添夜夜添亚洲女人| 制服丝袜国产精品| 国产不卡免费视频| 九色综合狠狠综合久久| 日韩午夜小视频| 午夜精品福利在线| 欧美日韩大陆在线| 天天av天天翘天天综合网 | 在线播放国产精品二区一二区四区|