private void setupOffense3_55() {
		offense3_55.setOnMouseClicked(new EventHandler<MouseEvent>() {
			public void handle(MouseEvent event) {
				int i = offense3_55.getSelectionModel().getSelectedIndex();
				ch.hockman.model.team.LineUp lineUp = HockmanMain.lineupTeam
						.getLineUp();
				switch (i) {
				case 0:
					lineUp.getE55().lw3 = null;
					break;
				case 1:
					lineUp.getE55().c3 = null;
					break;
				case 2:
					lineUp.getE55().rw3 = null;
					break;
				default:
					assert (i == -1);
				}
				linesShow();
			}
		});
		offense3_55.setOnDragOver(new EventHandler<DragEvent>() {
			public void handle(DragEvent event) {
				/* data is dragged over the target */
				/*
				 * accept it only if it is not dragged from the same node and if
				 * it has a string data
				 */
				Dragboard db = event.getDragboard();
				if (event.getGestureSource() != offense3_55 && db.hasString()) {
					ch.hockman.model.team.LineUp lineUp = HockmanMain.lineupTeam
							.getLineUp();
					String playerStr = db.getString();
					
					// drag&drop does not work on Ubuntu with Oracle VM 7u9
					//TODO remove this workaround as soon as the bug is fixed in JVM for Linux
					playerStr = dragStringWorkaround;

					int i = Integer.parseInt(playerStr);

					if (i >= 0) {
						Player player = HockmanMain.lineupTeam.getTeamPlayer(i);
						boolean accept = (lineUp.getE55().lw3 == null
								|| lineUp.getE55().c3 == null || lineUp.getE55().rw3 == null)
								&& lineUp.getE55().lw3 != player
								&& lineUp.getE55().c3 != player
								&& lineUp.getE55().rw3 != player
								&& lineUp.getE55().d11 != player
								&& lineUp.getE55().d12 != player
								&& lineUp.getE55().d21 != player
								&& lineUp.getE55().d22 != player
								&& lineUp.getE55().d31 != player
								&& lineUp.getE55().d32 != player
								&& lineUp.getG().goal1 != player
								&& lineUp.getG().goal2 != player
								&& HockmanMain.lineupTeam.checkForeigners(
										player, HockmanMain.game.getLeague()
												.getModus().maxNofForeigners());
						if (accept) {
							/*
							 * allow for both copying and moving, whatever user
							 * chooses
							 */
							event.acceptTransferModes(TransferMode.COPY_OR_MOVE);
						}
					}
				}
				event.consume();
			}
		});
		offense3_55.setOnDragDropped(new EventHandler<DragEvent>() {
			public void handle(DragEvent event) {
				/* data dropped */
				/* if there is a string data on dragboard, read it and use it */
				Dragboard db = event.getDragboard();
				boolean success = false;
				if (db.hasString()) {
					ch.hockman.model.team.LineUp lineUp = HockmanMain.lineupTeam
							.getLineUp();
					String playerStr = db.getString();
					
					// drag&drop does not work on Ubuntu with Oracle VM 7u9
					//TODO remove this workaround as soon as the bug is fixed in JVM for Linux
					playerStr = dragStringWorkaround;

					int i = Integer.parseInt(playerStr);

					Player player = HockmanMain.lineupTeam.getTeamPlayer(i);
					if (player.getPosition().getPosID() == Position.PosID.LEFTWING) {
						Player swap = lineUp.getE55().lw3;
						lineUp.getE55().lw3 = player;
						if (swap != null) {
							if (lineUp.getE55().c3 == null) {
								lineUp.getE55().c3 = swap;
							} else {
								assert (lineUp.getE55().rw3 == null); // DragOver
																	// allows
																	// drop
																	// only if
																	// lineUp
																	// incomplete
								lineUp.getE55().rw3 = swap;
							}
						}
					} else if (player.getPosition().getPosID() == Position.PosID.CENTER) {
						Player swap = lineUp.getE55().c3;
						lineUp.getE55().c3 = player;
						if (swap != null) {
							if (lineUp.getE55().lw3 == null) {
								lineUp.getE55().lw3 = swap;
							} else {
								assert (lineUp.getE55().rw3 == null); // DragOver
																	// allows
																	// drop
																	// only if
																	// lineUp
																	// incomplete
								lineUp.getE55().rw3 = swap;
							}
						}
					} else if (player.getPosition().getPosID() == Position.PosID.RIGHTWING) {
						Player swap = lineUp.getE55().rw3;
						lineUp.getE55().rw3 = player;
						if (swap != null) {
							if (lineUp.getE55().c3 == null) {
								lineUp.getE55().c3 = swap;
							} else {
								assert (lineUp.getE55().lw3 == null); // DragOver
																	// allows
																	// drop
																	// only if
																	// lineUp
																	// incomplete
								lineUp.getE55().lw3 = swap;
							}
						}
					} else {
						// player has wrong position, so insert just at an empty
						// space
						if (lineUp.getE55().lw3 == null) {
							lineUp.getE55().lw3 = player;
						} else if (lineUp.getE55().c3 == null) {
							lineUp.getE55().c3 = player;
						} else {
							assert (lineUp.getE55().rw3 == null); // DragOver allows
																// drop only if
																// lineUp
																// incomplete
							lineUp.getE55().rw3 = player;
						}
					}

					success = true;
				}
				/*
				 * let the source know whether the string was successfully
				 * transferred and used
				 */
				event.setDropCompleted(success);

				event.consume();
				linesShow();
			}
		});
	}