public void changeSelection() {
		drawer.clearSelected();
		Configuration[] configs;
		configs = configurations.getConfigurations();
		boolean foundFocused = false;
		for (int i = 0; i < configs.length; i++) {
			Configuration current = configs[i];
			foundFocused = setFocusIfNeeded(current, foundFocused);
            
            if (current instanceof TMConfiguration){
                //then blocks become relevant
                TMState cur = (TMState) current.getCurrentState();
                while (((TuringMachine) cur.getAutomaton()).getParent() != null) cur = ((TuringMachine) cur.getAutomaton()).getParent();
                drawer.addSelected(cur);
            }
            
//			Stack blocks = (Stack) configs[i].getBlockStack().clone();
//			if (!blocks.empty()) {
//				State parent = (State) configs[i].getBlockStack().peek();
//				int start = blocks.lastIndexOf(parent);
//				while (start >= 0) {
//					parent = (State) blocks.get(start);
//					drawer.addSelected(parent);
//					start--;
//				}
//			}
			drawer.addSelected(configs[i].getCurrentState());

		}
		component.repaint();
	}