/** * Present a GUI allowing the user to select shots in which each previously selected asset should * be updated. * * @return * @throws PipelineException */ private String confirmShotsToUpdate() throws PipelineException { /* DO GUI DRAWING STUFF*/ JScrollPane scroll = null; { Box ibox = new Box(BoxLayout.Y_AXIS); if (pAssetManager.isEmpty()) { Component comps[] = UIFactory.createTitledPanels(); JPanel tpanel = (JPanel) comps[0]; JPanel vpanel = (JPanel) comps[1]; tpanel.add(Box.createRigidArea(new Dimension(sTSize - 7, 0))); vpanel.add(Box.createHorizontalGlue()); ibox.add(comps[2]); } else { for (String assetName : pAssetManager.keySet()) { String name = getShortName(assetName); AssetInfo info = pAssetManager.get(assetName); Component comps[] = UIFactory.createTitledPanels(); JPanel tpanel = (JPanel) comps[0]; JPanel vpanel = (JPanel) comps[1]; String title = "Replace " + name + " with "; title += getShortName(info.getNewAsset()); JDrawer shotList = new JDrawer(title, (JComponent) comps[2], true); ibox.add(shotList); for (String shot : info.getLoHiResShots().keySet()) { String shortShot = getShortName(shot); JBooleanField field = UIFactory.createTitledBooleanField( tpanel, shortShot, sVSize, vpanel, sTSize, "Whether to replace this asset source for the node."); field.setName(shot); field.setValue(true); if (!pSubstituteFields.containsKey(assetName)) pSubstituteFields.put(assetName, new LinkedList<JBooleanField>()); pSubstituteFields.get(assetName).add(field); UIFactory.addVerticalSpacer(tpanel, vpanel, 3); } } } { JPanel spanel = new JPanel(); spanel.setName("Spacer"); spanel.setMinimumSize(new Dimension(sTSize + sVSize, 7)); spanel.setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); spanel.setPreferredSize(new Dimension(sTSize + sVSize, 7)); ibox.add(spanel); } { scroll = new JScrollPane(ibox); scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); Dimension size = new Dimension(sTSize + sVSize + 52, 300); scroll.setMinimumSize(size); scroll.setPreferredSize(size); scroll.getViewport().setScrollMode(JViewport.BACKINGSTORE_SCROLL_MODE); } } /* query the user */ JToolDialog diag = new JToolDialog("Update Assets Per Shot", scroll, "Confirm"); diag.setVisible(true); /* Process User Input */ if (diag.wasConfirmed()) { for (String asset : pSubstituteFields.keySet()) { for (JBooleanField field : pSubstituteFields.get(asset)) { Boolean bUpdate = field.getValue(); if ((bUpdate == null) || !bUpdate) { pAssetManager.get(asset).getLoHiResShots().remove(field.getName()); // logLine("\tRemoving: "+ getShortName(field.getName()) // TODO +" from list for "+ getShortName(asset)); } } } return ": Modifying Nodes..."; } return null; } // end confirmShotsToUpdate