/** * {@inheritDoc} * * @see * org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#getPropertiesEditionObject() */ public EObject getPropertiesEditionObject(EObject source) { if (source instanceof Game) { Game gameToUpdate = (Game) source; gameToUpdate.getPlayers().addAll(gamePlayersPart.getPlayersToAdd()); return gameToUpdate; } else return null; }
/** * {@inheritDoc} * * @see * org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#getPropertiesEditionCommand * (org.eclipse.emf.edit.domain.EditingDomain) */ public CompoundCommand getPropertiesEditionCommand(EditingDomain editingDomain) { CompoundCommand cc = new CompoundCommand(); if ((game != null) && (gamePlayersPart != null)) { List playersToAddFromPlayers = gamePlayersPart.getPlayersToAdd(); for (Iterator iter = playersToAddFromPlayers.iterator(); iter.hasNext(); ) cc.append( AddCommand.create( editingDomain, game, TarotPackage.eINSTANCE.getGame_Players(), iter.next())); Map playersToRefreshFromPlayers = gamePlayersPart.getPlayersToEdit(); for (Iterator iter = playersToRefreshFromPlayers.keySet().iterator(); iter.hasNext(); ) { Player nextElement = (Player) iter.next(); Player players = (Player) playersToRefreshFromPlayers.get(nextElement); for (EStructuralFeature feature : nextElement.eClass().getEAllStructuralFeatures()) { if (feature.isChangeable() && !(feature instanceof EReference && ((EReference) feature).isContainer())) { cc.append( SetCommand.create(editingDomain, nextElement, feature, players.eGet(feature))); } } } List playersToRemoveFromPlayers = gamePlayersPart.getPlayersToRemove(); for (Iterator iter = playersToRemoveFromPlayers.iterator(); iter.hasNext(); ) cc.append(DeleteCommand.create(editingDomain, iter.next())); List playersToMoveFromPlayers = gamePlayersPart.getPlayersToMove(); for (Iterator iter = playersToMoveFromPlayers.iterator(); iter.hasNext(); ) { org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement moveElement = (org.eclipse.emf.eef.runtime.impl.utils.EMFListEditUtil.MoveElement) iter.next(); cc.append( MoveCommand.create( editingDomain, game, TarotPackage.eINSTANCE.getPlayer(), moveElement.getElement(), moveElement.getIndex())); } } if (!cc.isEmpty()) return cc; cc.append(IdentityCommand.INSTANCE); return cc; }