private void setupLine1_pp5() {
		line1_pp5.setOnMouseClicked(new EventHandler<MouseEvent>() {
			public void handle(MouseEvent event) {
				int i = line1_pp5.getSelectionModel().getSelectedIndex();
				ch.hockman.model.team.LineUp lineUp = HockmanMain.lineupTeam
						.getLineUp();
				switch (i) {
				case 0:
					lineUp.getPp5().d11 = null;
					break;
				case 1:
					lineUp.getPp5().d12 = null;
					break;
				case 2:
					lineUp.getPp5().lw1 = null;
					break;
				case 3:
					lineUp.getPp5().c1 = null;
					break;
				case 4:
					lineUp.getPp5().rw1 = null;
					break;
				default:
					assert (i == -1);
				}
				linesShow();
			}
		});
		line1_pp5.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() != line1_pp5 && 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.getPp5().d11 == null
								|| lineUp.getPp5().d12 == null
								|| lineUp.getPp5().lw1 == null
								|| lineUp.getPp5().c1 == null || lineUp.getPp5().rw1 == null)
								&& lineUp.getPp5().d11 != player
								&& lineUp.getPp5().d12 != player
								&& lineUp.getPp5().lw1 != player
								&& lineUp.getPp5().c1 != player
								&& lineUp.getPp5().rw1 != 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();
			}
		});
		line1_pp5.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.DEFENDER
							|| player.getPosition().getPosID() == Position.PosID.GOALIE) {
						if (lineUp.getPp5().d11 == null) {
							lineUp.getPp5().d11 = player;
						} else if (lineUp.getPp5().d11.getPosition().getPosID() != Position.PosID.DEFENDER) {
							Player swap = lineUp.getPp5().d11;
							lineUp.getPp5().d11 = player;
							if (lineUp.getPp5().d12 == null) {
								lineUp.getPp5().d12 = swap;
							} else if (lineUp.getPp5().lw1 == null) {
								lineUp.getPp5().lw1 = swap;
							} else if (lineUp.getPp5().c1 == null) {
								lineUp.getPp5().c1 = swap;
							} else {
								assert (lineUp.getPp5().rw1 == null);
								lineUp.getPp5().rw1 = swap;
							}
						} else if (lineUp.getPp5().d12 == null) {
							lineUp.getPp5().d12 = player;
						} else if (lineUp.getPp5().d12.getPosition().getPosID() != Position.PosID.DEFENDER) {
							Player swap = lineUp.getPp5().d12;
							lineUp.getPp5().d12 = player;
							if (lineUp.getPp5().lw1 == null) {
								lineUp.getPp5().lw1 = swap;
							} else if (lineUp.getPp5().c1 == null) {
								lineUp.getPp5().c1 = swap;
							} else {
								assert (lineUp.getPp5().rw1 == null);
								lineUp.getPp5().rw1 = swap;
							}
						} else if (lineUp.getPp5().lw1 == null) {
							lineUp.getPp5().lw1 = player;
						} else if (lineUp.getPp5().c1 == null) {
							lineUp.getPp5().c1 = player;
						} else {
							assert (lineUp.getPp5().rw1 == null); // DragOver allows
																// drop only if
																// lineUp
																// incomplete
							lineUp.getPp5().rw1 = player;
						}
					} else if (player.getPosition().getPosID() == Position.PosID.LEFTWING) {
						Player swap = lineUp.getPp5().lw1;
						lineUp.getPp5().lw1 = player;
						if (swap != null) {
							if (lineUp.getPp5().c1 == null) {
								lineUp.getPp5().c1 = swap;
							} else if (lineUp.getPp5().rw1 == null) {
								lineUp.getPp5().rw1 = swap;
							} else if (lineUp.getPp5().d11 == null) {
								lineUp.getPp5().d11 = swap;
							} else {
								assert (lineUp.getPp5().d12 == null); // DragOver
																	// allows
																	// drop
																	// only if
																	// lineUp
																	// incomplete
								lineUp.getPp5().d12 = swap;
							}
						}
					} else if (player.getPosition().getPosID() == Position.PosID.CENTER) {
						Player swap = lineUp.getPp5().c1;
						lineUp.getPp5().c1 = player;
						if (swap != null) {
							if (lineUp.getPp5().lw1 == null) {
								lineUp.getPp5().lw1 = swap;
							} else if (lineUp.getPp5().rw1 == null) {
								lineUp.getPp5().rw1 = swap;
							} else if (lineUp.getPp5().d11 == null) {
								lineUp.getPp5().d11 = swap;
							} else {
								assert (lineUp.getPp5().d12 == null); // DragOver
																	// allows
																	// drop
																	// only if
																	// lineUp
																	// incomplete
								lineUp.getPp5().d12 = swap;
							}
						}
					} else {
						assert (player.getPosition().getPosID() == Position.PosID.RIGHTWING);
						Player swap = lineUp.getPp5().rw1;
						lineUp.getPp5().rw1 = player;
						if (swap != null) {
							if (lineUp.getPp5().c1 == null) {
								lineUp.getPp5().c1 = swap;
							} else if (lineUp.getPp5().lw1 == null) {
								lineUp.getPp5().lw1 = swap;
							} else if (lineUp.getPp5().d11 == null) {
								lineUp.getPp5().d11 = swap;
							} else {
								assert (lineUp.getPp5().d12 == null); // DragOver
																	// allows
																	// drop
																	// only if
																	// lineUp
																	// incomplete
								lineUp.getPp5().d12 = swap;
							}
						}
					}

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

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