/* * Jalview - A Sequence Alignment Editor and Viewer * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ package jalview.commands; import jalview.util.ShiftList; import jalview.datamodel.*; import java.util.Vector; public class TrimRegionCommand extends EditCommand { public static String TRIM_LEFT = "TrimLeft"; public static String TRIM_RIGHT = "TrimRight"; public ColumnSelection colSel = null; int [] start; ShiftList shiftList; SequenceGroup selectionGroup; Vector deletedHiddenColumns; int columnsDeleted; public TrimRegionCommand(String description, String command, SequenceI[] seqs, int column, AlignmentI al, ColumnSelection colSel, SequenceGroup selectedRegion) { this.description = description; this.selectionGroup = selectedRegion; this.colSel = colSel; if (command.equalsIgnoreCase(TRIM_LEFT)) { if(column==0) return; columnsDeleted = column; edits = new Edit[] { new Edit(CUT, seqs, 0, column, al)}; } else if (command.equalsIgnoreCase(TRIM_RIGHT)) { int width = al.getWidth()-column; if(width<2) { return; } columnsDeleted = width-1; edits = new Edit[] { new Edit(CUT, seqs, column+1, width, al)}; } //We need to keep a record of the sequence start //in order to restore the state after a redo int i, isize = edits[0].seqs.length; start = new int[isize]; for(i=0; i