@Override public void added (GraphEdgeChangeEvent<Inter, Relation> e) { final TupletInter tuplet = (TupletInter) e.getEdgeTarget(); tuplet.checkAbnormal(); }
@Override public void added (GraphEdgeChangeEvent<Inter, Relation> e) { final ArticulationInter articulation = (ArticulationInter) e.getEdgeTarget(); articulation.checkAbnormal(); }
@Override public void added (GraphEdgeChangeEvent<Inter, Relation> e) { final ArpeggiatoInter arpeggiato = (ArpeggiatoInter) e.getEdgeTarget(); arpeggiato.checkAbnormal(); }
@Override public void removed (GraphEdgeChangeEvent<Inter, Relation> e) { final ArticulationInter articulation = (ArticulationInter) e.getEdgeTarget(); if (!articulation.isRemoved()) { articulation.checkAbnormal(); } }
@Override public void removed (GraphEdgeChangeEvent<Inter, Relation> e) { final TupletInter tuplet = (TupletInter) e.getEdgeTarget(); if (!tuplet.isRemoved()) { tuplet.checkAbnormal(); } }
@Override public void removed (GraphEdgeChangeEvent<Inter, Relation> e) { final ArpeggiatoInter arpeggiato = (ArpeggiatoInter) e.getEdgeTarget(); if (!arpeggiato.isRemoved()) { arpeggiato.checkAbnormal(); } }
/** * @see GraphListener#edgeAdded(GraphEdgeChangeEvent) */ @Override public void edgeAdded(GraphEdgeChangeEvent<V, E> e) { V source = e.getEdgeSource(); V target = e.getEdgeTarget(); Set<V> sourceSet = connectedSetOf(source); Set<V> targetSet = connectedSetOf(target); // If source and target are in the same set, do nothing, otherwise, merge sets if (sourceSet != targetSet) { Set<V> merge = new HashSet<>(); merge.addAll(sourceSet); merge.addAll(targetSet); connectedSets.remove(sourceSet); connectedSets.remove(targetSet); connectedSets.add(merge); for (V v : merge) vertexToConnectedSet.put(v, merge); } }
@Override public void edgeAdded(GraphEdgeChangeEvent<V, E> e) { assert e .getSource() == this.graph : "This NeighborCache is added as a listener to a graph other than the one specified during the construction of this NeighborCache!"; V source = e.getEdgeSource(); V target = e.getEdgeTarget(); if (successors.containsKey(source)) { successors.get(source).addNeighbor(target); } if (predecessors.containsKey(target)) { predecessors.get(target).addNeighbor(source); } if (neighbors.containsKey(source)) { neighbors.get(source).addNeighbor(target); } if (neighbors.containsKey(target)) { neighbors.get(target).addNeighbor(source); } }
@Override public void edgeRemoved(GraphEdgeChangeEvent<V, E> e) { assert e .getSource() == this.graph : "This NeighborCache is added as a listener to a graph other than the one specified during the construction of this NeighborCache!"; V source = e.getEdgeSource(); V target = e.getEdgeTarget(); if (successors.containsKey(source)) { successors.get(source).removeNeighbor(target); } if (predecessors.containsKey(target)) { predecessors.get(target).removeNeighbor(source); } if (neighbors.containsKey(source)) { neighbors.get(source).removeNeighbor(target); } if (neighbors.containsKey(target)) { neighbors.get(target).removeNeighbor(source); } }
/** * Populate side if needed. * * @param e edge change event */ @Override public void added (GraphEdgeChangeEvent<Inter, Relation> e) { if (side == null) { final Inter chord = e.getEdgeSource(); final Inter wedge = e.getEdgeTarget(); side = (wedge.getCenter().x < chord.getCenter().x) ? RIGHT : LEFT; } }
/** * Populate endingSide if needed. * * @param e edge change event */ @Override public void added (GraphEdgeChangeEvent<Inter, Relation> e) { if (endingSide == null) { final EndingInter ending = (EndingInter) e.getEdgeSource(); final BarlineInter barline = (BarlineInter) e.getEdgeTarget(); endingSide = (barline.getCenter().x < ending.getCenter().x) ? LEFT : RIGHT; } }
@Override public void removed (GraphEdgeChangeEvent<Inter, Relation> e) { final HeadInter head = (HeadInter) e.getEdgeSource(); final StemInter stem = (StemInter) e.getEdgeTarget(); if (!head.isRemoved()) { head.checkAbnormal(); } if (!stem.isRemoved()) { stem.checkAbnormal(); } }
@Override public void removed (GraphEdgeChangeEvent<Inter, Relation> e) { // If stem has a chord with heads, remove all beam-head relations final AbstractBeamInter beam = (AbstractBeamInter) e.getEdgeSource(); final StemInter stem = (StemInter) e.getEdgeTarget(); /** * CAVEAT: if a beam (with beam-stem and beam-head relations) is removed, * the graph will automatically remove these relations, so also removing here * the beam-head relation might lead to NPE in graph... */ if (!beam.isRemoved() && !stem.isRemoved()) { final SIGraph sig = stem.getSig(); for (HeadChordInter headChord : stem.getChords()) { for (Inter inter : headChord.getNotes()) { HeadInter head = (HeadInter) inter; sig.removeEdge(beam, head); } } } }
/** * Populate side if needed. * * @param e edge change event */ @Override public void added (GraphEdgeChangeEvent<Inter, Relation> e) { final SlurInter slur = (SlurInter) e.getEdgeSource(); if (side == null) { final Inter head = e.getEdgeTarget(); side = (slur.getCenter().x < head.getCenter().x) ? RIGHT : LEFT; } if (isManual() || slur.isManual()) { final SIGraph sig = slur.getSig(); final Step latestStep = sig.getSystem().getSheet().getStub().getLatestStep(); if (latestStep.compareTo(Step.LINKS) >= 0) { // Check for a tie List<Inter> systemHeadChords = sig.inters(HeadChordInter.class); // Costly... slur.checkStaffTie(systemHeadChords); } } slur.checkAbnormal(); }
final StemInter stem = (StemInter) e.getEdgeTarget();
final StemInter stem = (StemInter) e.getEdgeTarget();