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(); }
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); } }