1 package jalview.controller;
5 import jalview.api.AlignViewControllerI;
6 import jalview.api.AlignViewportI;
7 import jalview.api.AlignmentViewPanel;
8 import jalview.datamodel.SequenceGroup;
9 import jalview.datamodel.SequenceI;
11 public class AlignViewController implements AlignViewControllerI
13 AlignViewportI viewport=null;
14 AlignmentViewPanel alignPanel=null;
16 * the GUI container that is handling interactions with the user
18 private AlignViewControllerGuiI avcg;
20 protected void finalize() throws Throwable {
26 public AlignViewController(AlignViewControllerGuiI alignFrame, AlignViewportI viewport,
27 AlignmentViewPanel alignPanel)
29 this.avcg = alignFrame;
30 this.viewport=viewport;
31 this.alignPanel = alignPanel;
34 public void setViewportAndAlignmentPanel(AlignViewportI viewport,AlignmentViewPanel alignPanel)
36 this.alignPanel = alignPanel;
37 this.viewport = viewport;
41 public boolean makeGroupsFromSelection()
44 if (viewport.getSelectionGroup() != null)
46 SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom(
47 viewport.getSequenceSelection(),
48 viewport.getAlignmentView(true).getSequenceStrings(
49 viewport.getGapCharacter()), viewport.getAlignment()
51 viewport.getAlignment().deleteAllGroups();
52 viewport.clearSequenceColours();
53 viewport.setSelectionGroup(null);
54 // set view properties for each group
55 for (int g = 0; g < gps.length; g++)
57 // gps[g].setShowunconserved(viewport.getShowUnconserved());
58 gps[g].setshowSequenceLogo(viewport.isShowSequenceLogo());
59 viewport.getAlignment().addGroup(gps[g]);
60 Color col = new Color((int) (Math.random() * 255),
61 (int) (Math.random() * 255), (int) (Math.random() * 255));
63 for (SequenceI sq : gps[g].getSequences(null))
64 viewport.setSequenceColour(sq, col);
71 public boolean createGroup()
74 SequenceGroup sg = viewport.getSelectionGroup();
77 viewport.getAlignment().addGroup(sg);
83 public boolean unGroup()
85 SequenceGroup sg = viewport.getSelectionGroup();
88 viewport.getAlignment().deleteGroup(sg);
94 public boolean deleteGroups()
96 if (viewport.getAlignment().getGroups()!=null && viewport.getAlignment().getGroups().size()>0)
98 viewport.getAlignment().deleteAllGroups();
99 viewport.clearSequenceColours();
100 viewport.setSelectionGroup(null);