X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fcommands%2FSlideSequencesCommand.java;h=153371a6baebd156d7f02f1e0cf88b7b4fd7044b;hb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;hp=21385adf84c3ead4be6f9316888cf9a8e5eaebca;hpb=ea1bc94cb0d4ea4b877101cb7d93283ed4a199fe;p=jalview.git diff --git a/src/jalview/commands/SlideSequencesCommand.java b/src/jalview/commands/SlideSequencesCommand.java index 21385ad..153371a 100644 --- a/src/jalview/commands/SlideSequencesCommand.java +++ b/src/jalview/commands/SlideSequencesCommand.java @@ -1,93 +1,93 @@ - -/* -* Jalview - A Sequence Alignment Editor and Viewer -* Copyright (C) 2007 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.datamodel.*; - -public class SlideSequencesCommand extends EditCommand -{ - boolean gapsInsertedBegin = false; - - public SlideSequencesCommand(String description, - SequenceI[] seqsLeft, - SequenceI[] seqsRight, - int slideSize, - char gapChar) - { - this.description = description; - - int lSize = seqsLeft.length; - gapsInsertedBegin = false; - int i, j; - for (i = 0; i < lSize; i++) - { - for (j = 0; j < slideSize; j++) - if (!jalview.util.Comparison.isGap(seqsLeft[i].getCharAt(j))) - { - gapsInsertedBegin = true; - break; - } - } - - if (!gapsInsertedBegin) - edits = new Edit[] - { new Edit(DELETE_GAP, seqsLeft, 0, slideSize, gapChar)}; - else - edits = new Edit[] - { new Edit(INSERT_GAP, seqsRight, 0, slideSize, gapChar)}; - - performEdit(0); - } - - public boolean getGapsInsertedBegin() - { - return gapsInsertedBegin; - } - - public boolean appendSlideCommand(SlideSequencesCommand command) - { - boolean same = false; - - if(command.edits[0].seqs.length==edits[0].seqs.length) - { - same = true; - for (int i = 0; i < command.edits[0].seqs.length; i++) - { - if (edits[0].seqs[i] != command.edits[0].seqs[i]) - { - same = false; - } - } - } - - if(same) - { - Edit[] temp = new Edit[command.edits.length + 1]; - System.arraycopy(command.edits, 0, temp, 0, command.edits.length); - command.edits = temp; - command.edits[command.edits.length - 1] = edits[0]; - } - - return same; - } -} - - +/* + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) + * Copyright (C) 2015 The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview 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 3 + * of the License, or (at your option) any later version. + * + * Jalview 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 Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ +package jalview.commands; + +import jalview.datamodel.SequenceI; + +public class SlideSequencesCommand extends EditCommand +{ + boolean gapsInsertedBegin = false; + + public SlideSequencesCommand(String description, SequenceI[] seqsLeft, + SequenceI[] seqsRight, int slideSize, char gapChar) + { + this.description = description; + + int lSize = seqsLeft.length; + gapsInsertedBegin = false; + int i, j; + for (i = 0; i < lSize; i++) + { + for (j = 0; j < slideSize; j++) + { + if (!jalview.util.Comparison.isGap(seqsLeft[i].getCharAt(j))) + { + gapsInsertedBegin = true; + break; + } + } + } + + Edit e = null; + + if (!gapsInsertedBegin) + { + e = new Edit(Action.DELETE_GAP, seqsLeft, 0, slideSize, gapChar); + setEdit(e); + } + else + { + e = new Edit(Action.INSERT_GAP, seqsRight, 0, slideSize, gapChar); + setEdit(e); + } + + performEdit(e, null); + } + + public boolean getGapsInsertedBegin() + { + return gapsInsertedBegin; + } + + public boolean appendSlideCommand(SlideSequencesCommand command) + { + boolean same = false; + + if (command.getEdit(0).seqs.length == getEdit(0).seqs.length) + { + same = true; + for (int i = 0; i < command.getEdit(0).seqs.length; i++) + { + if (getEdit(0).seqs[i] != command.getEdit(0).seqs[i]) + { + same = false; + } + } + } + + if (same) + { + command.addEdit(getEdit(0)); + } + + return same; + } +}