public PoliticalActionAttachment waitForPoliticalAction(final boolean firstRun,final IPoliticsDelegate iPoliticsDelegate){
  m_firstRun=firstRun;
  m_validPoliticalActions=new ArrayList<>(iPoliticsDelegate.getValidActions());
  Collections.sort(m_validPoliticalActions,new PoliticalActionComparator(getCurrentPlayer(),getData()));
  if (m_firstRun && m_validPoliticalActions.isEmpty()) {
    return null;
  }
 else {
    if (m_firstRun) {
      ClipPlayer.play(SoundPath.CLIP_PHASE_POLITICS,getCurrentPlayer());
    }
    SwingUtilities.invokeLater(null);
  }
  waitForRelease();
  return m_choice;
}

public PoliticalActionAttachment waitForPoliticalAction ( final boolean firstRun , final IPoliticsDelegate iPoliticsDelegate ) { m_firstRun = firstRun ; m_validPoliticalActions = new ArrayList < > ( iPoliticsDelegate . getValidActions ( ) ) ; Collections . sort ( m_validPoliticalActions , new PoliticalActionComparator ( getCurrentPlayer ( ) , getData ( ) ) ) ; if ( m_firstRun && m_validPoliticalActions . isEmpty ( ) ) { return null ; } else { if ( m_firstRun ) { ClipPlayer . play ( SoundPath . CLIP_PHASE_POLITICS , getCurrentPlayer ( ) ) ; } SwingUtilities . invokeLater ( null ) ; } waitForRelease ( ) ; return m_choice ; }
waits till someone calls release ( ) and then returns the political action chosen
