private void fireStateChanged(TabbedDockableContainer tdc,
			DockableState.Location futureLocation,
			RelativeDockablePosition position) {
		for (int i = 0; i < tdc.getTabCount(); i++) {
			Dockable d = tdc.getDockableAt(i);
			DockableState currentState = getDockableState(d);
			DockableState.Location currentLocation = getLocation(currentState);
			DockableState newState = new DockableState(this, d, futureLocation,
					position);

			context.setDockableState(d, newState);
			d.getDockKey().setLocation(DockableState.Location.FLOATING);
			DockingActionEvent dae = new DockingActionSimpleStateChangeEvent(
					this, d, currentLocation, newState.getLocation());
			fireDockingAction(dae, new DockableStateChangeEvent(currentState,
					newState));
		}
	}