JAL-1481 wrap tooltip in html
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 10 Oct 2014 14:05:26 +0000 (15:05 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 10 Oct 2014 14:05:26 +0000 (15:05 +0100)
resources/lang/Messages.properties
src/jalview/gui/AlignFrame.java
src/jalview/gui/AnnotationLabels.java
src/jalview/gui/PopupMenu.java
src/jalview/jbgui/GAlignFrame.java

index b1962e0..c6c8793 100644 (file)
-action.refresh_services = Refresh Services\r
-action.reset_services = Reset Services\r
-action.merge_results = Merge Results\r
-action.load_scheme = Load scheme\r
-action.save_scheme = Save scheme\r
-action.save_image = Save Image\r
-action.paste = Paste\r
-action.show_html_source = Show HTML Source\r
-action.print = Print\r
-action.web_service = Web Service\r
-action.cancel_job = Cancel Job\r
-action.start_job = Start Job\r
-action.revert = Revert\r
-action.move_down = Move Down\r
-action.move_up = Move Up\r
-action.remove_return_datatype = Remove return datatype\r
-action.add_return_datatype = Add return datatype\r
-action.remove_input_parameter = Remove selected input parameter\r
-action.add_input_parameter = Add input parameter\r
-action.edit = Edit\r
-action.new = New\r
-action.open_file = Open file\r
-action.show_unconserved = Show Unconserved\r
-action.open_new_aligmnent = Open new alignment\r
-action.raise_associated_windows = Raise Associated Windows\r
-action.minimize_associated_windows = Minimize Associated Windows\r
-action.close_all = Close all\r
-action.load_project = Load Project\r
-action.save_project = Save Project\r
-action.quit = Quit\r
-action.expand_views = Expand Views\r
-action.gather_views = Gather Views\r
-action.page_setup = Page Setup\r
-action.reload = Reload\r
-action.load = Load\r
-action.open = Open\r
-action.cancel = Cancel\r
-action.create = Create\r
-action.update = Update\r
-action.delete = Delete\r
-action.snapshot = Snapshot\r
-action.clear = Clear\r
-action.accept = Accept\r
-action.select_ddbb = --- Select Database ---\r
-action.undo = Undo\r
-action.redo = Redo\r
-action.reset = Reset\r
-action.remove_left = Remove left\r
-action.remove_right = Remove right\r
-action.remove_empty_columns = Remove Empty Columns\r
-action.remove_all_gaps = Remove All Gaps\r
-action.left_justify_alignment = Left Justify Alignment\r
-action.right_justify_alignment = Right Justify Alignment\r
-action.boxes = Boxes\r
-action.text = Text\r
-action.by_pairwise_id = by Pairwise Identity\r
-action.by_length = by Length\r
-action.by_id = by Id\r
-action.by_length = by Length\r
-action.by_group = by Group\r
-action.remove = Remove\r
-action.remove_redundancy = Remove Redundancy...\r
-action.pairwise_alignment = Pairwise Alignments...\r
-action.by_rna_helixes = by RNA Helices\r
-action.user_defined = User Defined...\r
-action.by_conservation = By Conservation\r
-action.wrap = Wrap\r
-action.show_gaps = Show Gaps\r
-action.show_hidden_markers = Show Hidden Markers\r
-action.find = Find\r
-action.undefine_groups = Undefine Groups\r
-action.create_groups = Create Groups\r
-action.make_groups_selection = Make Groups For Selection\r
-action.copy = Copy\r
-action.cut = Cut\r
-action.font = Font...\r
-action.scale_above = Scale Above\r
-action.scale_left = Scale Left\r
-action.scale_right = Scale Right\r
-action.by_tree_order = By Tree Order\r
-action.sort = Sort\r
-action.calculate_tree = Calculate Tree\r
-action.help = Help\r
-action.by_annotation = by Annotation...\r
-action.invert_sequence_selection = Invert Sequence Selection\r
-action.invert_column_selection = Invert Column Selection\r
-action.show = Show\r
-action.hide = Hide\r
-action.ok = OK\r
-action.set_defaults = Defaults\r
-action.create_group = Create Group\r
-action.remove_group = Remove Group\r
-action.edit_group = Edit Group\r
-action.border_colour = Border colour\r
-action.edit_new_group = Edit New Group\r
-action.hide_sequences = Hide Sequences\r
-action.sequences = Sequences\r
-action.ids = IDS\r
-action.ids_sequences = IDS and sequences\r
-action.reveal_all = Reveal All\r
-action.reveal_sequences = Reveal Sequences\r
-action.find_all = Find all\r
-action.find_next = Find next\r
-action.file = File\r
-action.view = View\r
-action.change_params = Change Parameters\r
-action.apply = Apply\r
-action.apply_threshold_all_groups = Apply threshold to all groups\r
-action.apply_all_groups = Apply to all Groups\r
-action.by_chain = By chain\r
-action.by_sequence = By Sequence\r
-action.paste_annotations = Paste Annotations\r
-action.format = Format\r
-action.select = Select\r
-action.new_view = New View\r
-action.close = Close\r
-action.add = Add\r
-action.save_as_default = Save as default\r
-action.save_as = Save as\r
-action.save = Save\r
-action.cancel_fetch = Cancel Fetch\r
-action.save_omit_hidden_columns = Save / Omit Hidden Columns\r
-action.change_font = Change Font\r
-action.change_font_tree_panel = Change Font (Tree Panel)\r
-action.colour = Colour\r
-action.calculate = Calculate\r
-action.select_all = Select all\r
-action.deselect_all = Deselect all\r
-action.invert_selection = Invert selection\r
-action.using_jmol = Using Jmol\r
-action.link = Link\r
-action.group_link = Group Links\r
-action.show_chain = Show Chain\r
-action.show_group = Show Group\r
-action.fetch_db_references = Fetch DB References\r
-action.edit = Edit\r
-action.view_flanking_regions = Show flanking regions\r
-label.view_flanking_regions = Show sequence data either side of the subsequences involved in this alignment\r
-label.str = Str:\r
-label.seq = Seq:\r
-label.structures_manager = Structures Manager\r
-label.nickname = Nickname:\r
-label.url = URL:\r
-label.input_file_url = Enter URL or Input File\r
-label.select_feature = Select feature:\r
-label.name = Name\r
-label.name_param = Name: {0}\r
-label.group = Group\r
-label.group_name = Group Name\r
-label.group_description = Group Description\r
-label.edit_group_name_description = Edit Group Name/Description\r
-label.colour = Colour:\r
-label.description = Description:\r
-label.start = Start:\r
-label.end = End:\r
-label.current_parameter_set_name = Current parameter set name:\r
-label.service_action = Service Action:\r
-label.post_url = POST URL:\r
-label.url_suffix = URL Suffix\r
-label.sequence_source = Sequence Source\r
-label.per_seq = per Sequence\r
-label.result_vertically_separable = Results are vertically separable\r
-label.amend = Amend\r
-label.undo_command = Undo {0}\r
-label.redo_command = Redo {0}\r
-label.principal_component_analysis = Principal Component Analysis\r
-label.average_distance_identity = Average Distance Using % Identity\r
-label.neighbour_joining_identity = Neighbour Joining Using % Identity\r
-label.treecalc_title = {0} Using {1}\r
-label.tree_calc_av = Average Distance\r
-label.tree_calc_nj = Neighbour Joining\r
-label.select_score_model = Select score model\r
-label.score_model_pid = % Identity\r
-label.score_model_blosum62 = BLOSUM62\r
-label.score_model_pam250 = PAM 250\r
-label.score_model_conservation = Physicochemical property conservation\r
-label.score_model_enhconservation = Physicochemical property conservation\r
-label.status_bar = Status bar\r
-label.out_to_textbox = Output to Textbox\r
-label.clustalx = Clustalx\r
-label.clustal = Clustal\r
-label.zappo = Zappo\r
-label.taylor = Taylor\r
-label.blc = BLC\r
-label.fasta = Fasta\r
-label.msf = MSF\r
-label.pfam = PFAM\r
-label.pileup = Pileup\r
-label.pir = PIR\r
-label.hydrophobicity = Hydrophobicity\r
-label.helix_propensity = Helix Propensity\r
-label.strand_propensity = Strand Propensity\r
-label.turn_propensity = Turn Propensity\r
-label.buried_index = Buried Index\r
-label.purine_pyrimidine = Purine/Pyrimidine\r
-label.percentage_identity = Percentage Identity\r
-label.blosum62 = BLOSUM62\r
-label.blosum62_score = BLOSUM62 Score\r
-label.tcoffee_scores = T-Coffee Scores\r
-label.average_distance_bloslum62 = Average Distance Using BLOSUM62\r
-label.neighbour_blosum62 = Neighbour Joining Using BLOSUM62\r
-label.show_annotations = Show annotations\r
-label.hide_annotations = Hide annotations\r
-label.show_all_annotations = Show all annotations\r
-label.hide_all_annotations = Hide all annotations\r
-label.colour_text = Colour Text\r
-label.show_non_conversed = Show nonconserved\r
-label.overview_window = Overview Window\r
-label.none = None\r
-label.above_identity_threshold = Above Identity Threshold\r
-label.show_sequence_features = Show Sequence Features\r
-label.nucleotide = Nucleotide\r
-label.to_new_alignment = To New Alignment\r
-label.to_this_alignment = Add To This Alignment\r
-label.apply_colour_to_all_groups = Apply Colour To All Groups\r
-label.modify_identity_thereshold = Modify Identity Threshold...\r
-label.modify_conservation_thereshold = Modify Conservation Threshold...\r
-label.input_from_textbox = Input from textbox\r
-label.centre_column_labels = Centre column labels\r
-label.automatic_scrolling = Automatic Scrolling\r
-label.documentation = Documentation\r
-label.about = About...\r
-label.show_sequence_limits = Show Sequence Limits\r
-label.feature_settings = Feature Settings...\r
-label.sequence_features = Sequence Features\r
-label.all_columns = All Columns\r
-label.all_sequences = All Sequences\r
-label.selected_columns = Selected Columns \r
-label.selected_sequences = Selected Sequences\r
-label.except_selected_sequences = All except selected sequences\r
-label.all_but_selected_region = All but Selected Region (Shift+Ctrl+H)\r
-label.selected_region = Selected Region\r
-label.all_sequences_columns = All Sequences and Columns\r
-label.group_consensus = Group Consensus\r
-label.group_conservation = Group Conservation\r
-label.show_consensus_histogram = Show Consensus Histogram\r
-label.show_consensus_logo = Show Consensus Logo\r
-label.norm_consensus_logo = Normalise Consensus Logo\r
-label.apply_all_groups = Apply to all groups\r
-label.autocalculated_annotation = Autocalculated Annotation\r
-label.min_colour = Minimum Colour\r
-label.max_colour = Maximum Colour\r
-label.use_original_colours = Use Original Colours\r
-label.threshold_minmax = Threshold is min/max\r
-label.represent_group_with = Represent Group with {0}\r
-label.selection = Selection\r
-label.group_colour = Group Colour\r
-label.sequence = Sequence\r
-label.view_pdb_structure = View PDB Structure\r
-label.min = Min:\r
-label.max = Max:\r
-label.colour_by_label = Colour by label\r
-label.new_feature = New Feature\r
-label.match_case = Match Case\r
-label.view_alignment_editor = View in alignment editor\r
-label.labels = Labels\r
-label.output_values = Output Values...\r
-label.output_points = Output points...\r
-label.output_transformed_points = Output transformed points\r
-label.input_data = Input Data...\r
-label.nucleotide_matrix = Nucleotide matrix\r
-label.protein_matrix = Protein matrix\r
-label.show_bootstrap_values = Show Bootstrap Values\r
-label.show_distances = Show distances\r
-label.mark_unassociated_leaves = Mark Unassociated Leaves\r
-label.fit_to_window = Fit To Window\r
-label.newick_format = Newick Format\r
-label.select_newick_like_tree_file = Select a newick-like tree file\r
-label.colours = Colours\r
-label.view_mapping = View Mapping\r
-label.wireframe = Wireframe\r
-label.depthcue = Depthcue\r
-label.z_buffering = Z Buffering\r
-label.charge_cysteine = Charge & Cysteine\r
-label.all_chains_visible = All Chains Visible\r
-label.successfully_added_features_alignment = Successfully added features to alignment\r
-label.keyboard_editing_mode = Keyboard editing mode is {0}\r
-label.paste_features_annotations_Tcoffee_here = Paste your features / annotations / T-coffee score file here.\r
-label.removed_columns = Removed {0} columns.\r
-label.removed_empty_columns = Removed {0} empty columns.\r
-label.paste_newick_tree_file = Paste your Newick tree file here.\r
-label.order_by_params = Order by {0}\r
-label.html_content = <html>{0}</html>\r
-label.paste_pdb_file= Paste your PDB file here.\r
-label.paste_pdb_file_for_sequence = Paste PDB file for sequence {0}\r
-label.could_not_parse_newick_file  = Could not parse Newick file\!\n {0}\r
-label.successfully_pasted_tcoffee_scores_to_alignment= Successfully pasted T-Coffee scores to alignment.\r
-label.failed_add_tcoffee_scores = Failed to add T-Coffee scores: \r
-label.successfully_pasted_annotation_to_alignment= Successfully pasted annotation to alignment.\r
-label.couldnt_parse_pasted_text_as_valid_annotation_feature_GFF_tcoffee_file = Couldn't parse pasted text as a valid annotation, feature, GFF, or T-Coffee score file\r
-label.successfully_pasted_alignment_file = Successfully pasted alignment file\r
-label.paste_your_alignment_file = Paste your alignment file here\r
-label.paste_your = Paste your\r
-label.finished_searching = Finished searching\r
-label.search_results= Search results {0} : {1}\r
-label.found_match_for = Found match for {0}\r
-label.font = Font:\r
-label.size = Size:\r
-label.style = Style:\r
-label.enter_redundancy_threshold = Enter the redundancy threshold\r
-label.calculating = Calculating....\r
-label.modify_conservation_visibility = Modify conservation visibility\r
-label.colour_residues_above_occurence = Colour residues above % occurence\r
-label.set_this_label_text = set this label text\r
-label.sequences_from = Sequences from {0}\r
-label.successfully_loaded_file  = Successfully loaded file {0}\r
-label.successfully_saved_to_file_in_format = Successfully saved to file: {0} in {1} format.\r
-label.copied_sequences_to_clipboard = Copied {0} sequences to clipboard.\r
-label.check_file_matches_sequence_ids_alignment = Check that the file matches sequence IDs in the alignment.\r
-label.problem_reading_tcoffee_score_file = Problem reading T-COFFEE score file\r
-label.source_to_target = {0} ... {1}\r
-label.per_sequence_only= Per-sequence only\r
-label.to_file = to File\r
-label.to_textbox = to Textbox\r
-label.jalview = Jalview\r
-label.csv_spreadsheet = CSV (Spreadsheet)\r
-label.status =  [Status]\r
-label.channels = Channels\r
-label.channel_title_item_count = {0} ({1})\r
-label.blog_item_published_on_date = {0} {1} \r
-label.select_das_service_from_table = Select a DAS service from the table to read a full description here.</font></html>\r
-label.session_update = Session Update\r
-label.new_vamsas_session = New Vamsas Session\r
-label.load_vamsas_session = Load Vamsas Session\r
-label.save_vamsas_session = Save Vamsas Session\r
-label.select_vamsas_session_opened_as_new_vamsas_session= Select a vamsas session to be opened as a new vamsas session.\r
-label.open_saved_vamsas_session = Open a saved VAMSAS session\r
-label.groovy_console = Groovy Console...\r
-label.lineart = Lineart\r
-label.dont_ask_me_again = Don't ask me again\r
-label.select_eps_character_rendering_style = Select EPS character rendering style\r
-label.invert_selection = Invert Selection\r
-label.optimise_order = Optimise Order\r
-label.seq_sort_by_score = Seq sort by Score\r
-label.load_colours = Load Colours\r
-label.save_colours = Save Colours\r
-label.fetch_das_features = Fetch DAS Features\r
-label.selected_database_to_fetch_from = Selected {0} database {1} to fetch from {2} \r
-label.database_param = Database: {0}\r
-label.example = Example\r
-label.example_param = Example: {0}\r
-label.select_file_format_before_saving = You must select a file format before saving!\r
-label.file_format_not_specified = File format not specified\r
-label.alignment_contains_hidden_columns = The Alignment contains hidden columns.\nDo you want to save only the visible alignment?\r
-label.couldnt_save_file = Couldn't save file: {0}\r
-label.error_saving_file = Error Saving File\r
-label.remove_from_default_list = Remove from default list?\r
-label.remove_user_defined_colour = Remove user defined colour\r
-label.you_must_select_least_two_sequences = You must select at least 2 sequences.\r
-label.invalid_selection = Invalid Selection\r
-label.principal_component_analysis_must_take_least_four_input_sequences = Principal component analysis must take\nat least 4 input sequences.\r
-label.sequence_selection_insufficient = Sequence selection insufficient\r
-label.you_need_more_two_sequences_selected_build_tree = You need to have more than two sequences selected to build a tree!\r
-label.not_enough_sequences = Not enough sequences\r
-label.selected_region_to_tree_may_only_contain_residues_or_gaps =  The selected region to create a tree may\nonly contain residues or gaps.\nTry using the Pad function in the edit menu,\nor one of the multiple sequence alignment web services.\r
-label.sequences_selection_not_aligned = Sequences in selection are not aligned\r
-label.sequences_must_be_aligned_before_creating_tree = The sequences must be aligned before creating a tree.\nTry using the Pad function in the edit menu,\n or one of the multiple sequence alignment web services.\r
-label.sequences_not_aligned = Sequences not aligned\r
-label.problem_reading_tree_file =  Problem reading tree file\r
-label.possible_problem_with_tree_file = Possible problem with tree file\r
-label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation = Please select at least three bases in at least one sequence in order to perform a cDNA translation.\r
-label.translation_failed = Translation Failed\r
-label.error_when_translating_sequences_submit_bug_report = Unfortunately, something went wrong when translating your sequences.\nPlease take a look in the Jalview java console\nand submit a bug report including the stacktrace.\r
-label.implementation_error  = Implementation error:\r
-label.automatically_associate_pdb_files_with_sequences_same_name = Do you want to automatically associate the {0} PDB files with sequences in the alignment that have the same name?\r
-label.automatically_associate_pdb_files_by_name = Automatically Associate PDB files by name\r
-label.ignore_unmatched_dropped_files_info = <html>Do you want to <em>ignore</em> the {0} files whose names did not match any sequence IDs ?</html>\r
-label.ignore_unmatched_dropped_files = Ignore unmatched dropped files?\r
-label.enter_view_name = Enter View Name\r
-label.enter_label = Enter label\r
-label.enter_label_for_the_structure = Enter a label for the structure?\r
-label.pdb_entry_is_already_displayed = {0} is already displayed.\nDo you want to re-use this viewer ?\r
-label.map_sequences_to_visible_window = Map Sequences to Visible Window: {0}\r
-label.add_pdbentry_to_view = Do you want to add {0} to the view called\n'{1}'\n\r
-label.align_to_existing_structure_view = Align to existing structure view\r
-label.pdb_entries_couldnt_be_retrieved = The following pdb entries could not be retrieved from the PDB\:\n{0}\nPlease try downloading them manually.\r
-label.couldnt_load_file = Couldn't load file\r
-label.couldnt_find_pdb_id_in_file = Couldn't find a PDB id in the file supplied. Please enter an Id to identify this structure.\r
-label.no_pdb_id_in_file = No PDB Id in File\r
-label.couldnt_read_pasted_text = Couldn't read the pasted text {0}\r
-label.error_parsing_text = Error parsing text\r
-label.enter_local_das_source = Enter Nickname & URL of Local DAS Source\r
-label.you_can_only_edit_or_remove_local_das_sources = You can only edit or remove local DAS Sources!\r
-label.public_das_source = Public DAS source - not editable\r
-label.input_alignment_from_url = Input Alignment From URL\r
-label.input_alignment = Input Alignment\r
-label.couldnt_import_as_vamsas_session = Couldn't import '{0}' as a new vamsas session.\r
-label.vamsas_document_import_failed = Vamsas Document Import Failed\r
-label.couldnt_locate = Couldn't locate {0}\r
-label.url_not_found = URL not found\r
-label.no_link_selected = No link selected\r
-label.new_sequence_url_link = New sequence URL link\r
-label.cannot_edit_annotations_in_wrapped_view = Cannot edit annotations in wrapped view\r
-label.wrapped_view_no_edit = Wrapped view - no edit\r
-label.error_retrieving_data = Error Retrieving Data\r
-label.user_colour_scheme_must_have_name = User colour scheme must have a name\r
-label.no_name_colour_scheme = No name for colour scheme\r
-label.invalid_url = Invalid URL !\r
-label.error_loading_file = Error loading file\r
-label.problems_opening_file = Encountered problems opening {0}!!\r
-label.file_open_error = File open error\r
-label.no_das_sources_selected_warn = No das sources were selected.\nPlease select some sources and\ntry again.\r
-label.no_das_sources_selected_title = No DAS Sources Selected\r
-label.colour_scheme_exists_overwrite = Colour scheme {0} exists.\nContinue saving colour scheme as {1}?"\r
-label.duplicate_scheme_name = Duplicate scheme name\r
-label.jalview_new_questionnaire = There is a new Questionnaire available. Would you like to complete it now ?\n\r
-label.jalview_user_survey = Jalview User Survey\r
-label.alignment_properties = Alignment Properties: {0}\r
-label.alignment_props = Alignment Properties\r
-label.input_cut_paste = Cut & Paste Input\r
-label.input_cut_paste_params = Cut & Paste Input - {0}\r
-label.alignment_output_command = Alignment output - {0}\r
-label.annotations = Annotations\r
-label.features = Features\r
-label.overview_params = Overview {0}\r
-label.paste_newick_file = Paste Newick file\r
-label.load_tree_from_file = From File - \r
-label.colour_by_annotation = Colour by Annotation\r
-label.selection_output_command = Selection output - {0}\r
-label.annotation_for_displayid = <p><h2>Annotation for {0} </h2></p><p>\r
-label.pdb_sequence_mapping = PDB - Sequence Mapping\r
-label.pca_details = PCA details\r
-label.redundancy_threshold_selection = Redundancy threshold selection\r
-label.user_defined_colours = User defined colours\r
-label.jalviewLite_release = JalviewLite - Release {0}\r
-label.jaview_build_date = Build date: {0}\r
-label.jalview_authors_1 = Authors: :  Jim Procter, Andrew Waterhouse, Lauren Lui, Jan Engelhardt, Natasha Sherstnev,\r
-label.jalview_authors_2 = Daniel Barton, Michele Clamp, James Cuff, Steve Searle, David Martin & Geoff Barton.\r
-label.jalview_dev_managers = Development managed by The Barton Group, University of Dundee, Scotland, UK.\r
-label.jalview_distribution_lists = For help, see the FAQ at www.jalview.org and/or join the jalview-discuss@jalview.org mailing list\r
-label.jalview_please_cite = If  you use Jalview, please cite:\r
-label.jalview_cite_1_authors = Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)\r
-label.jalview_cite_1_title = Jalview Version 2 - a multiple sequence alignment editor and analysis workbench\r
-label.jalview_cite_1_ref = Bioinformatics doi: 10.1093/bioinformatics/btp033\r
-label.right_click = Right click\r
-label.to_add_annotation = to add annotation\r
-label.alignment_has_no_annotations = Alignment has no annotations\r
-label.retrieving_pdb_data = Retrieving PDB data...\r
-label.label = Label\r
-label.no_features_added_to_this_alignment = No Features added to this alignment!!\r
-label.features_can_be_added_from_searches_1 = (Features can be added from searches or\r
-label.features_can_be_added_from_searches_2 = from Jalview / GFF features files)\r
-label.calculating_pca= Calculating PCA\r
-label.reveal_columns = Reveal Columns\r
-label.jalview_cannot_open_file = Jalview can't open file\r
-label.jalview_applet = Jalview applet\r
-label.loading_data = Loading data\r
-label.memory_stats = Total Free Memory: {0} MB; Max Memory: {1} MB; {2} %\r
-label.calculating_tree = Calculating tree\r
-label.state_queueing = queuing\r
-label.state_running = running\r
-label.state_complete = complete\r
-label.state_completed = finished\r
-label.state_job_cancelled = job cancelled!!\r
-label.state_job_error = job error!\r
-label.server_error_try_later = Server Error! (try later)\r
-label.error_loading_pdb_data = Error loading PDB data!!\r
-label.fetching_pdb_data = Fetching PDB data...\r
-label.structure_type = Structure type\r
-label.settings_for_type = Settings for {0}\r
-label.view_full_application = View in Full Application\r
-label.load_associated_tree = Load Associated Tree ...\r
-label.load_features_annotations = Load Features/Annotations ...\r
-label.export_features = Export Features ...\r
-label.export_annotations = Export Annotations ...\r
-label.jalview_copy = Copy (Jalview Only)\r
-label.jalview_cut = Cut (Jalview Only)\r
-label.to_upper_case = To Upper Case\r
-label.to_lower_case = To Lower Case\r
-label.toggle_case = Toggle Case\r
-label.edit_name_description = Edit Name/Description ...\r
-label.create_sequence_feature = Create Sequence Feature ...\r
-label.edit_sequences = Edit Sequences\r
-label.sequence_details = Sequence Details\r
-label.jmol_help = Jmol Help\r
-label.all = All\r
-label.sort_by = Sort by\r
-label.sort_by_score = Sort by Score\r
-label.sort_by_density = Sort by Density\r
-label.sequence_sort_by_density = Sequence sort by Density\r
-label.reveal = Reveal\r
-label.hide_columns = Hide Columns\r
-label.load_jalview_annotations = Load Jalview Annotations or Features File\r
-label.load_tree_file = Load a tree file\r
-label.retrieve_parse_sequence_database_records_alignment_or_selected_sequences = Retrieve and parse sequence database records for the alignment or the currently selected sequences\r
-label.standard_databases = Standard Databases\r
-label.fetch_embl_uniprot = Fetch from EMBL/EMBLCDS or Uniprot/PDB and any selected DAS sources\r
-label.reset_min_max_colours_to_defaults = Reset min and max colours to defaults from user preferences.\r
-label.align_structures_using_linked_alignment_views = Align structures using {0} linked alignment views\r
-label.connect_to_session = Connect to session {0}\r
-label.threshold_feature_display_by_score = Threshold the feature display by score.\r
-label.threshold_feature_no_thereshold = No Threshold\r
-label.threshold_feature_above_thereshold = Above Threshold\r
-label.threshold_feature_below_thereshold = Below Threshold\r
-label.adjust_thereshold = Adjust threshold\r
-label.toggle_absolute_relative_display_threshold = Toggle between absolute and relative display threshold.\r
-label.display_features_same_type_different_label_using_different_colour = Display features of the same type with a different label using a different colour. (e.g. domain features)\r
-label.select_colour_minimum_value = Select Colour for Minimum Value\r
-label.select_colour_maximum_value = Select Colour for Maximum Value\r
-label.open_new_jmol_view_with_all_structures_associated_current_selection_superimpose_using_alignment = Open a new Jmol view with all structures associated with the current selection and superimpose them using the alignment.\r
-label.open_url_param = Open URL {0}\r
-label.open_url_seqs_param = Open URL ({0}..) ({1} seqs)\r
-label.load_pdb_file_associate_with_sequence = Load a PDB file and associate it with sequence '{0}'\r
-label.reveal_hidden_columns = Reveal Hidden Columns with Right Mouse Button\r
-label.dark_colour = Dark Colour\r
-label.light_colour = Light Colour\r
-label.highlightnode = Left click to select leaves.<br>Double-click to invert leaves.<br>Right click to change colour.\r
-label.load_colour_scheme = Load colour scheme\r
-label.toggle_enabled_views = When enabled, allows many views to be selected.\r
-label.edit_notes_parameter_set = Click to edit the notes for this parameter set.\r
-label.open_local_file = Open local file\r
-label.enable_automatically_sort_alignment_when_open_new_tree = Enable this to automatically sort<br>the alignment when you open<br> a new tree.\r
-label.listen_for_selections = Listen for selections\r
-label.selections_mirror_selections_made_same_sequences_other_views = When selected, selections in this view will mirror<br>selections made on the same sequences in other views.\r
-label.toggle_sequence_visibility = Shift+H toggles sequence visiblity\r
-label.toggle_columns_visibility = Ctrl+H toggles column visiblity.\r
-label.toggles_visibility_hidden_selected_regions = H toggles visibility of hidden or selected regions\r
-label.rename_tab_eXpand_reGroup=  Right-click to rename tab <br> Press X to eXpand tabs, G to reGroup.\r
-label.right_align_sequence_id = Right Align Sequence Id\r
-label.sequence_id_tooltip = Sequence ID Tooltip\r
-label.no_services = <No Services>\r
-label.select_copy_raw_html = Select this if you want to copy raw html\r
-label.share_data_vamsas_applications = Share data with other vamsas applications\r
-label.connect_to = Connect to\r
-label.join_existing_vamsas_session = Join an existing vamsas session\r
-label.from_url = from URL\r
-label.any_trees_calculated_or_loaded_alignment_automatically_sort = When selected, any trees calculated or loaded onto the alignment will automatically sort the alignment\r
-label.sort_with_new_tree = Sort With New Tree\r
-label.from_textbox = from Textbox\r
-label.window = Window\r
-label.preferences = Preferences\r
-label.tools = Tools\r
-label.fetch_sequences = Fetch Sequence(s)\r
-label.stop_vamsas_session = Stop Vamsas Session\r
-label.collect_garbage = Collect Garbage\r
-label.show_memory_usage = Show Memory Usage\r
-label.show_java_console = Show Java Console\r
-label.show_jalview_news = Show Jalview News\r
-label.monospaced_fonts_faster_to_render = Monospaced fonts are faster to render\r
-label.anti_alias_fonts = Anti-alias Fonts (Slower to render)\r
-label.monospaced_font= Monospaced\r
-label.quality = Quality\r
-label.maximize_window = Maximize Window\r
-label.conservation = Conservation\r
-label.consensus = Consensus\r
-label.histogram = Histogram\r
-label.logo = Logo\r
-label.non_positional_features = Non-positional Features\r
-label.database_references = Database References\r
-label.share_selection_across_views = Share selection across views\r
-label.scroll_highlighted_regions = Scroll to highlighted regions\r
-label.gap_symbol = Gap Symbol\r
-label.alignment_colour = Alignment Colour\r
-label.address = Address\r
-label.port = Port\r
-label.default_browser_unix = Default Browser (Unix)\r
-label.send_usage_statistics = Send usage statistics\r
-label.check_for_questionnaires = Check for questionnaires\r
-label.check_for_latest_version = Check for latest version\r
-label.url_linkfrom_sequence_id = URL link from Sequence ID\r
-label.use_proxy_server = Use a proxy server\r
-label.eps_rendering_style = EPS rendering style\r
-label.append_start_end = Append /start-end (/15-380)\r
-label.full_sequence_id = Full Sequence Id\r
-label.smooth_font = Smooth Font\r
-label.autocalculate_consensus = AutoCalculate Consensus\r
-label.pad_gaps = Pad Gaps\r
-label.pad_gaps_when_editing = Pad Gaps When Editing\r
-label.automatically_set_id_width = Automatically set ID width\r
-label.figure_id_column_width = Figure ID column width\r
-label.use_modeller_output = Use Modeller Output\r
-label.wrap_alignment = Wrap Alignment\r
-label.right_align_ids = Right Align Ids\r
-label.sequence_name_italics = Sequence Name Italics\r
-label.open_overview = Open Overview\r
-label.default_colour_scheme_for_alignment = Default Colour Scheme for alignment\r
-label.annotation_shading_default = Annotation Shading Default\r
-label.default_minimum_colour_annotation_shading = Default Minimum Colour for annotation shading\r
-label.default_maximum_colour_annotation_shading = Default Maximum Colour for annotation shading\r
-label.visual = Visual\r
-label.connections = Connections\r
-label.output = Output\r
-label.editing = Editing\r
-label.das_settings = DAS Settings\r
-label.web_services = Web Services\r
-label.right_click_to_edit_currently_selected_parameter = Right click to edit currently selected parameter.\r
-label.let_jmol_manage_structure_colours = Let Jmol manage structure colours\r
-label.marks_leaves_tree_not_associated_with_sequence = Marks leaves of tree not associated with a sequence\r
-label.index_web_services_menu_by_host_site = Index web services in menu by the host site\r
-label.option_want_informed_web_service_URL_cannot_be_accessed_jalview_when_starts_up = Check this option if you want to be informed<br>when a web service URL cannot be accessed by Jalview<br>when it starts up\r
-label.new_service_url = New Service URL\r
-label.edit_service_url = Edit Service URL\r
-label.delete_service_url = Delete Service URL\r
-label.details = Details\r
-label.options = Options\r
-label.parameters = Parameters\r
-label.available_das_sources = Available DAS Sources\r
-label.full_details = Full Details\r
-label.authority = Authority\r
-label.type = Type\r
-label.proxy_server = Proxy Server\r
-label.file_output = File Output\r
-label.select_input_type = Select input type\r
-label.set_options_for_type = Set options for type\r
-label.data_input_parameters = Data input parameters\r
-label.data_returned_by_service = Data returned by service\r
-label.rsbs_encoded_service = RSBS Encoded Service\r
-label.parsing_errors = Parsing errors\r
-label.simple_bioinformatics_rest_services = Simple Bioinformatics Rest Services\r
-label.web_service_discovery_urls = Web Service Discovery URLS\r
-label.input_parameter_name = Input Parameter name\r
-label.short_descriptive_name_for_service = Short descriptive name for service\r
-label.function_service_performs = What kind of function the service performs (e.g. alignment, analysis, search, etc).\r
-label.brief_description_service = Brief description of service\r
-label.url_post_data_service = URL to post data to service. Include any special parameters needed here\r
-label.optional_suffix = Optional suffix added to URL when retrieving results from service\r
-label.preferred_gap_character = Which gap character does this service prefer?\r
-label.gap_character = Gap character\r
-label.move_return_type_up_order= Move return type up order\r
-label.move_return_type_down_order= Move return type down order\r
-label.update_user_parameter_set = Update this existing user parameter set\r
-label.delete_user_parameter_set = Delete the currently selected user parameter set\r
-label.create_user_parameter_set = Create a new parameter set with the current settings.\r
-label.revert_changes_user_parameter_set = Undo all changes to the current parameter set\r
-label.start_job_current_settings = Start Job with current settings\r
-label.cancel_job_close_dialog = Close this dialog and cancel job\r
-label.input_output = Input/Output\r
-label.cut_paste = Cut'n'Paste\r
-label.adjusting_parameters_for_calculation = Adjusting parameters for existing Calculation\r
-label.2d_rna_structure_line = 2D RNA {0}\r
-label.2d_rna_sequence_name = 2D RNA - {0}\r
-label.edit_name_and_description_current_group = Edit name and description of current group.\r
-label.view_structure_for = View structure for {0}\r
-label.view_all_structures = View all {0} structures.\r
-label.view_all_representative_structures = View all {0} representative structures.\r
-label.open_new_jmol_view_with_all_representative_structures_associated_current_selection_superimpose_using_alignment = Opens a new Jmol view with all representative structures\nassociated with the current selection\nsuperimposed with the current alignment.\r
-label.associate_structure_with_sequence = Associate Structure with Sequence\r
-label.from_file = from file\r
-label.enter_pdb_id = Enter PDB Id\r
-label.discover_pdb_ids = Discover PDB ids\r
-label.text_colour = Text Colour\r
-label.structure = Structure\r
-label.view_structure = View Structure\r
-label.clustalx_colours = Clustalx colours\r
-label.above_identity_percentage = Above % Identity\r
-label.create_sequence_details_report_annotation_for = Annotation for {0}\r
-label.sequece_details_for = Sequece Details for {0}\r
-label.sequence_name = Sequence Name\r
-label.sequence_description = Sequence Description\r
-label.edit_sequence_name_description = Edit Sequence Name/Description\r
-label.spaces_converted_to_backslashes = Spaces have been converted to _\r
-label.no_spaces_allowed_sequence_name = No spaces allowed in Sequence Name\r
-label.select_outline_colour = Select Outline Colour\r
-label.web_browser_not_found_unix = Unixers\: Couldn't find default web browser.\nAdd the full path to your browser in Preferences."\r
-label.web_browser_not_found = Web browser not found\r
-label.select_pdb_file_for = Select a PDB file for {0}\r
-label.html = HTML\r
-label.wrap = Wrap\r
-label.show_database_refs = Show Database Refs\r
-label.show_non_positional_features = Show Non-Positional Features\r
-label.save_png_image = Save As PNG Image\r
-label.load_tree_for_sequence_set = Load a tree for this sequence set\r
-label.export_image = Export Image\r
-label.vamsas_store = VAMSAS store\r
-label.translate_cDNA = Translate cDNA\r
-label.extract_scores = Extract Scores\r
-label.get_cross_refs = Get Cross References\r
-label.sort_alignment_new_tree = Sort Alignment With New Tree\r
-label.add_sequences = Add Sequences\r
-label.new_window = New Window\r
-label.refresh_available_sources = Refresh Available Sources\r
-label.use_registry = Use Registry\r
-label.add_local_source = Add Local Source\r
-label.set_as_default = Set as Default\r
-label.show_labels = Show labels\r
-label.background_colour = Background Colour\r
-label.associate_nodes_with = Associate Nodes With\r
-label.jalview_pca_calculation = Jalview PCA Calculation\r
-label.link_name = Link Name\r
-label.pdb_file = PDB file\r
-label.colour_with_jmol = Colour with Jmol\r
-label.align_structures = Align structures\r
-label.jmol = Jmol\r
-label.sort_alignment_by_tree = Sort Alignment By Tree\r
-label.mark_unlinked_leaves = Mark Unlinked Leaves\r
-label.associate_leaves_with = Associate Leaves With\r
-label.save_colour_scheme_with_unique_name_added_to_colour_menu = Save your colour scheme with a unique name and it will be added to the Colour menu\r
-label.case_sensitive = Case Sensitive\r
-label.lower_case_colour = Lower Case Colour\r
-label.index_by_host = Index by host\r
-label.index_by_type = Index by type\r
-label.enable_jabaws_services = Enable JABAWS Services\r
-label.display_warnings = Display warnings\r
-label.move_url_up = Move URL up\r
-label.move_url_down = Move URL down\r
-label.add_sbrs_definition = Add a SBRS definition\r
-label.edit_sbrs_definition = Edit SBRS definition\r
-label.delete_sbrs_definition = Delete SBRS definition\r
-label.your_sequences_have_been_verified = Your sequences have been verified against known sequence databases. Some of the ids have been\n altered, most likely the start/end residue will have been updated.\n Save your alignment to maintain the updated id.\n\n\r
-label.sequence_names_updated = Sequence names updated\r
-label.dbref_search_completed = DBRef search completed\r
-label.show_all_chains = Show all chains\r
-label.fetch_all_param = Fetch all {0}\r
-label.paste_new_window = Paste To New Window\r
-label.settings_for_param = Settings for {0}\r
-label.view_params = View {0}\r
-label.select_all_views = Select all views\r
-label.align_sequences_to_existing_alignment = Align sequences to an existing alignment\r
-label.realign_with_params = Realign with {0}\r
-label.calcname_with_default_settings = {0} with Defaults\r
-label.action_with_default_settings = {0} with default settings\r
-label.edit_settings_and_run = Edit settings and run...\r
-label.view_and_change_parameters_before_alignment = View and change the parameters before alignment\r
-label.run_with_preset_params = Run {0} with preset\r
-label.view_and_change_parameters_before_running_calculation = View and change parameters before running calculation\r
-label.view_documentation = View documentation\r
-label.select_return_type = Select return type\r
-label.translation_of_params = Translation of {0}\r
-label.features_for_params = Features for - {0}\r
-label.annotations_for_params = Annotations for - {0}\r
-label.generating_features_for_params = Generating features for - {0}\r
-label.generating_annotations_for_params = Generating annotations for - {0}\r
-label.varna_params = VARNA - {0}\r
-label.sequence_feature_settings = Sequence Feature Settings\r
-label.pairwise_aligned_sequences = Pairwise Aligned Sequences\r
-label.original_data_for_params = Original Data for {0}\r
-label.points_for_params = Points for {0}\r
-label.transformed_points_for_params = Transformed points for {0}\r
-label.graduated_color_for_params = Graduated Feature Colour for {0}\r
-label.select_backgroud_colour = Select Background Colour\r
-label.invalid_font = Invalid Font\r
-label.separate_multiple_accession_ids = Separate multiple accession ids with semi colon ";"\r
-label.replace_commas_semicolons = Replace commas with semi-colons\r
-label.parsing_failed_syntax_errors_shown_below_param = Parsing failed. Syntax errors shown below {0}\r
-label.parsing_failed_unrecoverable_exception_thrown_param = \nParsing failed. An unrecoverable exception was thrown:\n {0}\r
-label.example_query_param = Example query: {0}\r
-label.enter_value_increase_conservation_visibility = Enter value to increase conservation visibility\r
-label.enter_percentage_identity_above_which_colour_residues = Enter % identity above which to colour residues\r
-label.wswublast_client_credits = To display sequence features an exact Uniprot id with 100% sequence identity match must be entered.\nIn order to display these features, try changing the names of your sequences to the ids suggested below.\n\nRunning WSWUBlast at EBI.\nPlease quote Pillai S., Silventoinen V., Kallio K., Senger M., Sobhany S., Tate J., Velankar S., Golovin A., Henrick K., Rice P., Stoehr P., Lopez R.\nSOAP-based services provided by the European Bioinformatics Institute.\nNucleic Acids Res. 33(1):W25-W28 (2005));\r
+action.refresh_services = Refresh Services
+action.reset_services = Reset Services
+action.merge_results = Merge Results
+action.load_scheme = Load scheme
+action.save_scheme = Save scheme
+action.save_image = Save Image
+action.paste = Paste
+action.show_html_source = Show HTML Source
+action.print = Print
+action.web_service = Web Service
+action.cancel_job = Cancel Job
+action.start_job = Start Job
+action.revert = Revert
+action.move_down = Move Down
+action.move_up = Move Up
+action.remove_return_datatype = Remove return datatype
+action.add_return_datatype = Add return datatype
+action.remove_input_parameter = Remove selected input parameter
+action.add_input_parameter = Add input parameter
+action.edit = Edit
+action.new = New
+action.open_file = Open file
+action.show_unconserved = Show Unconserved
+action.open_new_aligmnent = Open new alignment
+action.raise_associated_windows = Raise Associated Windows
+action.minimize_associated_windows = Minimize Associated Windows
+action.close_all = Close all
+action.load_project = Load Project
+action.save_project = Save Project
+action.quit = Quit
+action.expand_views = Expand Views
+action.gather_views = Gather Views
+action.page_setup = Page Setup
+action.reload = Reload
+action.load = Load
+action.open = Open
+action.cancel = Cancel
+action.create = Create
+action.update = Update
+action.delete = Delete
+action.snapshot = Snapshot
+action.clear = Clear
+action.accept = Accept
+action.select_ddbb = --- Select Database ---
+action.undo = Undo
+action.redo = Redo
+action.reset = Reset
+action.remove_left = Remove left
+action.remove_right = Remove right
+action.remove_empty_columns = Remove Empty Columns
+action.remove_all_gaps = Remove All Gaps
+action.left_justify_alignment = Left Justify Alignment
+action.right_justify_alignment = Right Justify Alignment
+action.boxes = Boxes
+action.text = Text
+action.by_pairwise_id = by Pairwise Identity
+action.by_id = by Id
+action.by_length = by Length
+action.by_group = by Group
+action.remove = Remove
+action.remove_redundancy = Remove Redundancy
+action.pairwise_alignment = Pairwise Alignments...
+action.by_rna_helixes = by RNA Helices
+action.user_defined = User Defined...
+action.by_conservation = By Conservation
+action.wrap = Wrap
+action.show_gaps = Show Gaps
+action.show_hidden_markers = Show Hidden Markers
+action.find = Find
+action.undefine_groups = Undefine Groups
+action.create_groups = Create Groups
+action.make_groups_selection = Make Groups For Selection
+action.copy = Copy
+action.cut = Cut
+action.font = Font...
+action.scale_above = Scale Above
+action.scale_left = Scale Left
+action.scale_right = Scale Right
+action.by_tree_order = By Tree Order
+action.sort = Sort
+action.calculate_tree = Calculate Tree
+action.help = Help
+action.by_annotation = by Annotation...
+action.invert_sequence_selection = Invert Sequence Selection
+action.invert_column_selection = Invert Column Selection
+action.show = Show
+action.hide = Hide
+action.ok = OK
+action.set_defaults = Defaults
+action.create_group = Create Group
+action.remove_group = Remove Group
+action.edit_group = Edit Group
+action.border_colour = Border colour
+action.edit_new_group = Edit New Group
+action.hide_sequences = Hide Sequences
+action.sequences = Sequences
+action.ids = IDS
+action.ids_sequences = IDS and sequences
+action.reveal_all = Reveal All
+action.reveal_sequences = Reveal Sequences
+action.find_all = Find all
+action.find_next = Find next
+action.file = File
+action.view = View
+action.change_params = Change Parameters
+action.apply = Apply
+action.apply_threshold_all_groups = Apply threshold to all groups
+action.apply_all_groups = Apply to all Groups
+action.by_chain = By chain
+action.by_sequence = By Sequence
+action.paste_annotations = Paste Annotations
+action.format = Format
+action.select = Select
+action.new_view = New View
+action.close = Close
+action.add = Add
+action.save_as_default = Save as default
+action.save_as = Save as
+action.save = Save
+action.cancel_fetch = Cancel Fetch
+action.save_omit_hidden_columns = Save / Omit Hidden Columns
+action.change_font = Change Font
+action.change_font_tree_panel = Change Font (Tree Panel)
+action.colour = Colour
+action.calculate = Calculate
+action.select_all = Select all
+action.deselect_all = Deselect all
+action.invert_selection = Invert selection
+action.using_jmol = Using Jmol
+action.link = Link
+action.group_link = Group Link
+action.show_chain = Show Chain
+action.show_group = Show Group
+action.fetch_db_references = Fetch DB References
+action.view_flanking_regions = Show flanking regions
+label.view_flanking_regions = Show sequence data either side of the subsequences involved in this alignment
+label.str = Str:
+label.seq = Seq:
+label.structures_manager = Structures Manager
+label.nickname = Nickname:
+label.url = URL:
+label.input_file_url = Enter URL or Input File
+label.select_feature = Select feature:
+label.name = Name
+label.name_param = Name: {0}
+label.group = Group
+label.group_name = Group Name
+label.group_description = Group Description
+label.edit_group_name_description = Edit Group Name/Description
+label.colour = Colour:
+label.description = Description:
+label.start = Start:
+label.end = End:
+label.current_parameter_set_name = Current parameter set name:
+label.service_action = Service Action:
+label.post_url = POST URL:
+label.url_suffix = URL Suffix
+label.sequence_source = Sequence Source
+label.per_seq = per Sequence
+label.result_vertically_separable = Results are vertically separable
+label.amend = Amend
+label.undo_command = Undo {0}
+label.redo_command = Redo {0}
+label.principal_component_analysis = Principal Component Analysis
+label.average_distance_identity = Average Distance Using % Identity
+label.neighbour_joining_identity = Neighbour Joining Using % Identity
+label.treecalc_title = {0} Using {1}
+label.tree_calc_av = Average Distance
+label.tree_calc_nj = Neighbour Joining
+label.select_score_model = Select score model
+label.score_model_pid = % Identity
+label.score_model_blosum62 = BLOSUM62
+label.score_model_pam250 = PAM 250
+label.score_model_conservation = Physicochemical property conservation
+label.score_model_enhconservation = Physicochemical property conservation
+label.status_bar = Status bar
+label.out_to_textbox = Output to Textbox
+label.clustalx = Clustalx
+label.clustal = Clustal
+label.zappo = Zappo
+label.taylor = Taylor
+label.blc = BLC
+label.fasta = Fasta
+label.msf = MSF
+label.pfam = PFAM
+label.pileup = Pileup
+label.pir = PIR
+label.hydrophobicity = Hydrophobicity
+label.helix_propensity = Helix Propensity
+label.strand_propensity = Strand Propensity
+label.turn_propensity = Turn Propensity
+label.buried_index = Buried Index
+label.purine_pyrimidine = Purine/Pyrimidine
+label.percentage_identity = Percentage Identity
+label.blosum62 = BLOSUM62
+label.blosum62_score = BLOSUM62 Score
+label.tcoffee_scores = T-Coffee Scores
+label.average_distance_bloslum62 = Average Distance Using BLOSUM62
+label.neighbour_blosum62 = Neighbour Joining Using BLOSUM62
+label.show_annotations = Show annotations
+label.hide_annotations = Hide annotations
+label.show_all_annotations = Show all annotations
+label.hide_all_annotations = Hide all annotations
+label.hide_all = Hide all
+label.add_reference_annotations = Add reference annotations
+label.find_tip = Search alignment, selection or sequence ids for a subsequence (ignoring gaps).<br>Accepts regular expressions - search Help for 'regex' for details.
+label.colour_text = Colour Text
+label.show_non_conversed = Show nonconserved
+label.overview_window = Overview Window
+label.none = None
+label.above_identity_threshold = Above Identity Threshold
+label.show_sequence_features = Show Sequence Features
+label.nucleotide = Nucleotide
+label.to_new_alignment = To New Alignment
+label.to_this_alignment = Add To This Alignment
+label.apply_colour_to_all_groups = Apply Colour To All Groups
+label.modify_identity_thereshold = Modify Identity Threshold...
+label.modify_conservation_thereshold = Modify Conservation Threshold...
+label.input_from_textbox = Input from textbox
+label.centre_column_labels = Centre column labels
+label.automatic_scrolling = Automatic Scrolling
+label.documentation = Documentation
+label.about = About...
+label.show_sequence_limits = Show Sequence Limits
+label.feature_settings = Feature Settings...
+label.sequence_features = Sequence Features
+label.all_columns = All Columns
+label.all_sequences = All Sequences
+label.selected_columns = Selected Columns 
+label.selected_sequences = Selected Sequences
+label.all_but_selected_region = All but Selected Region (Shift+Ctrl+H)
+label.selected_region = Selected Region
+label.all_sequences_columns = All Sequences and Columns
+label.group_consensus = Group Consensus
+label.group_conservation = Group Conservation
+label.show_consensus_histogram = Show Consensus Histogram
+label.show_consensus_logo = Show Consensus Logo
+label.norm_consensus_logo = Normalise Consensus Logo
+label.apply_all_groups = Apply to all groups
+label.autocalculated_annotation = Autocalculated Annotation
+label.min_colour = Minimum Colour
+label.max_colour = Maximum Colour
+label.use_original_colours = Use Original Colours
+label.threshold_minmax = Threshold is min/max
+label.represent_group_with = Represent Group with {0}
+label.selection = Selection
+label.group_colour = Group Colour
+label.sequence = Sequence
+label.view_pdb_structure = View PDB Structure
+label.min = Min:
+label.max = Max:
+label.colour_by_label = Colour by label
+label.new_feature = New Feature
+label.match_case = Match Case
+label.view_alignment_editor = View in alignment editor
+label.labels = Labels
+label.output_values = Output Values...
+label.output_points = Output points...
+label.output_transformed_points = Output transformed points
+label.input_data = Input Data...
+label.nucleotide_matrix = Nucleotide matrix
+label.protein_matrix = Protein matrix
+label.show_bootstrap_values = Show Bootstrap Values
+label.show_distances = Show distances
+label.mark_unassociated_leaves = Mark Unassociated Leaves
+label.fit_to_window = Fit To Window
+label.newick_format = Newick Format
+label.select_newick_like_tree_file = Select a newick-like tree file
+label.colours = Colours
+label.view_mapping = View Mapping
+label.wireframe = Wireframe
+label.depthcue = Depthcue
+label.z_buffering = Z Buffering
+label.charge_cysteine = Charge & Cysteine
+label.all_chains_visible = All Chains Visible
+label.successfully_added_features_alignment = Successfully added features to alignment
+label.keyboard_editing_mode = Keyboard editing mode is {0}
+label.paste_features_annotations_Tcoffee_here = Paste your features / annotations / T-coffee score file here.
+label.removed_columns = Removed {0} columns.
+label.removed_empty_columns = Removed {0} empty columns.
+label.paste_newick_tree_file = Paste your Newick tree file here.
+label.order_by_params = Order by {0}
+label.html_content = <html>{0}</html>
+label.paste_pdb_file= Paste your PDB file here.
+label.paste_pdb_file_for_sequence = Paste PDB file for sequence {0}
+label.could_not_parse_newick_file  = Could not parse Newick file\!\n {0}
+label.successfully_pasted_tcoffee_scores_to_alignment= Successfully pasted T-Coffee scores to alignment.
+label.failed_add_tcoffee_scores = Failed to add T-Coffee scores: 
+label.successfully_pasted_annotation_to_alignment= Successfully pasted annotation to alignment.
+label.couldnt_parse_pasted_text_as_valid_annotation_feature_GFF_tcoffee_file = Couldn't parse pasted text as a valid annotation, feature, GFF, or T-Coffee score file
+label.successfully_pasted_alignment_file = Successfully pasted alignment file
+label.paste_your_alignment_file = Paste your alignment file here
+label.paste_your = Paste your
+label.finished_searching = Finished searching
+label.search_results= Search results {0} : {1}
+label.found_match_for = Found match for {0}
+label.font = Font:
+label.size = Size:
+label.style = Style:
+label.enter_redundancy_threshold = Enter the redundancy threshold
+label.calculating = Calculating....
+label.modify_conservation_visibility = Modify conservation visibility
+label.colour_residues_above_occurence = Colour residues above % occurence
+label.set_this_label_text = set this label text
+label.sequences_from = Sequences from {0}
+label.successfully_loaded_file  = Successfully loaded file {0}
+label.successfully_saved_to_file_in_format = Successfully saved to file: {0} in {1} format.
+label.copied_sequences_to_clipboard = Copied {0} sequences to clipboard.
+label.check_file_matches_sequence_ids_alignment = Check that the file matches sequence IDs in the alignment.
+label.problem_reading_tcoffee_score_file = Problem reading T-COFFEE score file
+label.source_to_target = {0} ... {1}
+label.per_sequence_only= Per-sequence only
+label.to_file = to File
+label.to_textbox = to Textbox
+label.jalview = Jalview
+label.csv_spreadsheet = CSV (Spreadsheet)
+label.status = Status
+label.channels = Channels
+label.channel_title_item_count = {0} ({1})
+label.blog_item_published_on_date = {0} {1} 
+label.select_das_service_from_table = Select a DAS service from the table to read a full description here.</font></html>
+label.session_update = Session Update
+label.new_vamsas_session = New Vamsas Session
+label.load_vamsas_session = Load Vamsas Session
+label.save_vamsas_session = Save Vamsas Session
+label.select_vamsas_session_opened_as_new_vamsas_session= Select a vamsas session to be opened as a new vamsas session.
+label.open_saved_vamsas_session = Open a saved VAMSAS session
+label.groovy_console = Groovy Console...
+label.lineart = Lineart
+label.dont_ask_me_again = Don't ask me again
+label.select_eps_character_rendering_style = Select EPS character rendering style
+label.invert_selection = Invert Selection
+label.optimise_order = Optimise Order
+label.seq_sort_by_score = Seq sort by Score
+label.load_colours = Load Colours
+label.save_colours = Save Colours
+label.fetch_das_features = Fetch DAS Features
+label.selected_database_to_fetch_from = Selected {0} database {1} to fetch from {2} 
+label.database_param = Database: {0}
+label.example = Example
+label.example_param = Example: {0}
+label.select_file_format_before_saving = You must select a file format before saving!
+label.file_format_not_specified = File format not specified
+label.alignment_contains_hidden_columns = The Alignment contains hidden columns.\nDo you want to save only the visible alignment?
+label.couldnt_save_file = Couldn't save file: {0}
+label.error_saving_file = Error Saving File
+label.remove_from_default_list = Remove from default list?
+label.remove_user_defined_colour = Remove user defined colour
+label.you_must_select_least_two_sequences = You must select at least 2 sequences.
+label.invalid_selection = Invalid Selection
+label.principal_component_analysis_must_take_least_four_input_sequences = Principal component analysis must take\nat least 4 input sequences.
+label.sequence_selection_insufficient = Sequence selection insufficient
+label.you_need_more_two_sequences_selected_build_tree = You need to have more than two sequences selected to build a tree!
+label.not_enough_sequences = Not enough sequences
+label.selected_region_to_tree_may_only_contain_residues_or_gaps =  The selected region to create a tree may\nonly contain residues or gaps.\nTry using the Pad function in the edit menu,\nor one of the multiple sequence alignment web services.
+label.sequences_selection_not_aligned = Sequences in selection are not aligned
+label.sequences_must_be_aligned_before_creating_tree = The sequences must be aligned before creating a tree.\nTry using the Pad function in the edit menu,\n or one of the multiple sequence alignment web services.
+label.sequences_not_aligned = Sequences not aligned
+label.problem_reading_tree_file =  Problem reading tree file
+label.possible_problem_with_tree_file = Possible problem with tree file
+label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation = Please select at least three bases in at least one sequence in order to perform a cDNA translation.
+label.translation_failed = Translation Failed
+label.error_when_translating_sequences_submit_bug_report = Unfortunately, something went wrong when translating your sequences.\nPlease take a look in the Jalview java console\nand submit a bug report including the stacktrace.
+label.implementation_error  = Implementation error:
+label.automatically_associate_pdb_files_with_sequences_same_name = Do you want to automatically associate the {0} PDB files with sequences in the alignment that have the same name?
+label.automatically_associate_pdb_files_by_name = Automatically Associate PDB files by name
+label.ignore_unmatched_dropped_files_info = <html>Do you want to <em>ignore</em> the {0} files whose names did not match any sequence IDs ?</html>
+label.ignore_unmatched_dropped_files = Ignore unmatched dropped files?
+label.enter_view_name = Enter View Name
+label.enter_label = Enter label
+label.enter_label_for_the_structure = Enter a label for the structure?
+label.pdb_entry_is_already_displayed = {0} is already displayed.\nDo you want to re-use this viewer ?
+label.map_sequences_to_visible_window = Map Sequences to Visible Window: {0}
+label.add_pdbentry_to_view = Do you want to add {0} to the view called\n{1}\n
+label.align_to_existing_structure_view = Align to existing structure view
+label.pdb_entries_couldnt_be_retrieved = The following pdb entries could not be retrieved from the PDB\:\n{0}\nPlease try downloading them manually.
+label.couldnt_load_file = Couldn't load file
+label.couldnt_find_pdb_id_in_file = Couldn't find a PDB id in the file supplied. Please enter an Id to identify this structure.
+label.no_pdb_id_in_file = No PDB Id in File
+label.couldnt_read_pasted_text = Couldn't read the pasted text {0}
+label.error_parsing_text = Error parsing text
+label.enter_local_das_source = Enter Nickname & URL of Local DAS Source
+label.you_can_only_edit_or_remove_local_das_sources = You can only edit or remove local DAS Sources!
+label.public_das_source = Public DAS source - not editable
+label.input_alignment_from_url = Input Alignment From URL
+label.input_alignment = Input Alignment
+label.couldnt_import_as_vamsas_session = Couldn't import {0} as a new vamsas session.
+label.vamsas_document_import_failed = Vamsas Document Import Failed
+label.couldnt_locate = Couldn't locate {0}
+label.url_not_found = URL not found
+label.no_link_selected = No link selected
+label.new_sequence_url_link = New sequence URL link
+label.cannot_edit_annotations_in_wrapped_view = Cannot edit annotations in wrapped view
+label.wrapped_view_no_edit = Wrapped view - no edit
+label.error_retrieving_data = Error Retrieving Data
+label.user_colour_scheme_must_have_name = User colour scheme must have a name
+label.no_name_colour_scheme = No name for colour scheme
+label.invalid_url = Invalid URL !
+label.error_loading_file = Error loading file
+label.problems_opening_file = Encountered problems opening {0}!!
+label.file_open_error = File open error
+label.no_das_sources_selected_warn = No das sources were selected.\nPlease select some sources and\ntry again.
+label.no_das_sources_selected_title = No DAS Sources Selected
+label.colour_scheme_exists_overwrite = Colour scheme {0} exists.\nContinue saving colour scheme as {1}?"
+label.duplicate_scheme_name = Duplicate scheme name
+label.jalview_new_questionnaire = There is a new Questionnaire available. Would you like to complete it now ?\n
+label.jalview_user_survey = Jalview User Survey
+label.alignment_properties = Alignment Properties: {0}
+label.alignment_props = Alignment Properties
+label.input_cut_paste = Cut & Paste Input
+label.input_cut_paste_params = Cut & Paste Input - {0}
+label.alignment_output_command = Alignment output - {0}
+label.annotations = Annotations
+label.features = Features
+label.overview_params = Overview {0}
+label.paste_newick_file = Paste Newick file
+label.load_tree_from_file = From File - 
+label.colour_by_annotation = Colour by Annotation
+label.selection_output_command = Selection output - {0}
+label.annotation_for_displayid = <p><h2>Annotation for {0} </h2></p><p>
+label.pdb_sequence_mapping = PDB - Sequence Mapping
+label.pca_details = PCA details
+label.redundancy_threshold_selection = Redundancy threshold selection
+label.user_defined_colours = User defined colours
+label.jalviewLite_release = JalviewLite - Release {0}
+label.jaview_build_date = Build date: {0}
+label.jalview_authors_1 = Authors: :  Jim Procter, Andrew Waterhouse, Lauren Lui, Jan Engelhardt, Natasha Sherstnev,
+label.jalview_authors_2 = Daniel Barton, Michele Clamp, James Cuff, Steve Searle, David Martin & Geoff Barton.
+label.jalview_dev_managers = Development managed by The Barton Group, University of Dundee, Scotland, UK.
+label.jalview_distribution_lists = For help, see the FAQ at www.jalview.org and/or join the jalview-discuss@jalview.org mailing list
+label.jalview_please_cite = If  you use Jalview, please cite:
+label.jalview_cite_1_authors = Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)
+label.jalview_cite_1_title = Jalview Version 2 - a multiple sequence alignment editor and analysis workbench
+label.jalview_cite_1_ref = Bioinformatics doi: 10.1093/bioinformatics/btp033
+label.right_click = Right click
+label.to_add_annotation = to add annotation
+label.alignment_has_no_annotations = Alignment has no annotations
+label.retrieving_pdb_data = Retrieving PDB data...
+label.label = Label
+label.no_features_added_to_this_alignment = No Features added to this alignment!!
+label.features_can_be_added_from_searches_1 = (Features can be added from searches or
+label.features_can_be_added_from_searches_2 = from Jalview / GFF features files)
+label.calculating_pca= Calculating PCA
+label.reveal_columns = Reveal Columns
+label.jalview_cannot_open_file = Jalview can't open file
+label.jalview_applet = Jalview applet
+label.loading_data = Loading data
+label.memory_stats = Total Free Memory: {0} MB; Max Memory: {1} MB; {2} %
+label.calculating_tree = Calculating tree
+label.state_queueing = queuing
+label.state_running = running
+label.state_complete = complete
+label.state_completed = finished
+label.state_job_cancelled = job cancelled!!
+label.state_job_error = job error!
+label.server_error_try_later = Server Error! (try later)
+label.error_loading_pdb_data = Error loading PDB data!!
+label.fetching_pdb_data = Fetching PDB data...
+label.structure_type = Structure type
+label.settings_for_type = Settings for {0}
+label.view_full_application = View in Full Application
+label.load_associated_tree = Load Associated Tree ...
+label.load_features_annotations = Load Features/Annotations ...
+label.export_features = Export Features
+label.export_annotations = Export Annotations
+label.jalview_copy = Copy (Jalview Only)
+label.jalview_cut = Cut (Jalview Only)
+label.to_upper_case = To Upper Case
+label.to_lower_case = To Lower Case
+label.toggle_case = Toggle Case
+label.edit_name_description = Edit Name/Description ...
+label.create_sequence_feature = Create Sequence Feature ...
+label.edit_sequence = Edit Sequence
+label.edit_sequences = Edit Sequences
+label.sequence_details = Sequence Details
+label.jmol_help = Jmol Help
+label.all = All
+label.sort_by = Sort by
+label.sort_by_score = Sort by Score
+label.sort_by_density = Sort by Density
+label.sequence_sort_by_density = Sequence sort by Density
+label.reveal = Reveal
+label.hide_columns = Hide Columns
+label.load_jalview_annotations = Load Jalview Annotations or Features File
+label.load_tree_file = Load a tree file
+label.retrieve_parse_sequence_database_records_alignment_or_selected_sequences = Retrieve and parse sequence database records for the alignment or the currently selected sequences
+label.standard_databases = Standard Databases
+label.fetch_embl_uniprot = Fetch from EMBL/EMBLCDS or Uniprot/PDB and any selected DAS sources
+label.reset_min_max_colours_to_defaults = Reset min and max colours to defaults from user preferences.
+label.align_structures_using_linked_alignment_views = Align structures using {0} linked alignment views
+label.connect_to_session = Connect to session {0}
+label.threshold_feature_display_by_score = Threshold the feature display by score.
+label.threshold_feature_no_thereshold = No Threshold
+label.threshold_feature_above_thereshold = Above Threshold
+label.threshold_feature_below_thereshold = Below Threshold
+label.adjust_thereshold = Adjust threshold
+label.toggle_absolute_relative_display_threshold = Toggle between absolute and relative display threshold.
+label.display_features_same_type_different_label_using_different_colour = Display features of the same type with a different label using a different colour. (e.g. domain features)
+label.select_colour_minimum_value = Select Colour for Minimum Value
+label.select_colour_maximum_value = Select Colour for Maximum Value
+label.open_new_jmol_view_with_all_structures_associated_current_selection_superimpose_using_alignment = Open a new Jmol view with all structures associated with the current selection and superimpose them using the alignment.
+label.open_url_param = Open URL {0}
+label.open_url_seqs_param = Open URL ({0}..) ({1} seqs)
+label.load_pdb_file_associate_with_sequence = Load a PDB file and associate it with sequence {0}
+label.reveal_hidden_columns = Reveal Hidden Columns with Right Mouse Button
+label.dark_colour = Dark Colour
+label.light_colour = Light Colour
+label.highlightnode = Left click to select leaves.<br>Double-click to invert leaves.<br>Right click to change colour.
+label.load_colour_scheme = Load colour scheme
+label.toggle_enabled_views = When enabled, allows many views to be selected.
+label.edit_notes_parameter_set = Click to edit the notes for this parameter set.
+label.open_local_file = Open local file
+label.enable_automatically_sort_alignment_when_open_new_tree = Enable this to automatically sort<br>the alignment when you open<br> a new tree.
+label.listen_for_selections = Listen for selections
+label.selections_mirror_selections_made_same_sequences_other_views = When selected, selections in this view will mirror<br>selections made on the same sequences in other views.
+label.toggle_sequence_visibility = Shift+H toggles sequence visiblity
+label.toggle_columns_visibility = Ctrl+H toggles column visiblity.
+label.toggles_visibility_hidden_selected_regions = H toggles visibility of hidden or selected regions
+label.rename_tab_eXpand_reGroup=  Right-click to rename tab <br> Press X to eXpand tabs, G to reGroup.
+label.right_align_sequence_id = Right Align Sequence Id
+label.sequence_id_tooltip = Sequence ID Tooltip
+label.no_services = <No Services>
+label.select_copy_raw_html = Select this if you want to copy raw html
+label.share_data_vamsas_applications = Share data with other vamsas applications
+label.connect_to = Connect to
+label.join_existing_vamsas_session = Join an existing vamsas session
+label.from_url = from URL
+label.any_trees_calculated_or_loaded_alignment_automatically_sort = When selected, any trees calculated or loaded onto the alignment will automatically sort the alignment
+label.sort_with_new_tree = Sort With New Tree
+label.from_textbox = from Textbox
+label.window = Window
+label.preferences = Preferences
+label.tools = Tools
+label.fetch_sequences = Fetch Sequence(s)
+label.stop_vamsas_session = Stop Vamsas Session
+label.collect_garbage = Collect Garbage
+label.show_memory_usage = Show Memory Usage
+label.show_java_console = Show Java Console
+label.show_jalview_news = Show Jalview News
+label.take_snapshot = Take snapshot
+label.monospaced_fonts_faster_to_render = Monospaced fonts are faster to render
+label.anti_alias_fonts = Anti-alias Fonts (Slower to render)
+label.monospaced_font= Monospaced
+label.quality = Quality
+label.maximize_window = Maximize Window
+label.conservation = Conservation
+label.consensus = Consensus
+label.histogram = Histogram
+label.logo = Logo
+label.non_positional_features = Non-positional Features
+label.database_references = Database References
+label.share_selection_across_views = Share selection across views
+label.scroll_highlighted_regions = Scroll to highlighted regions
+label.gap_symbol = Gap Symbol
+label.alignment_colour = Alignment Colour
+label.address = Address
+label.port = Port
+label.default_browser_unix = Default Browser (Unix)
+label.send_usage_statistics = Send usage statistics
+label.check_for_questionnaires = Check for questionnaires
+label.check_for_latest_version = Check for latest version
+label.url_linkfrom_sequence_id = URL link from Sequence ID
+label.use_proxy_server = Use a proxy server
+label.eps_rendering_style = EPS rendering style
+label.append_start_end = Append /start-end (/15-380)
+label.full_sequence_id = Full Sequence Id
+label.smooth_font = Smooth Font
+label.autocalculate_consensus = AutoCalculate Consensus
+label.pad_gaps = Pad Gaps
+label.pad_gaps_when_editing = Pad Gaps When Editing
+label.automatically_set_id_width = Automatically set ID width
+label.figure_id_column_width = Figure ID column width
+label.use_modeller_output = Use Modeller Output
+label.wrap_alignment = Wrap Alignment
+label.right_align_ids = Right Align Ids
+label.sequence_name_italics = Sequence Name Italics
+label.open_overview = Open Overview
+label.default_colour_scheme_for_alignment = Default Colour Scheme for alignment
+label.annotation_shading_default = Annotation Shading Default
+label.default_minimum_colour_annotation_shading = Default Minimum Colour for annotation shading
+label.default_maximum_colour_annotation_shading = Default Maximum Colour for annotation shading
+label.visual = Visual
+label.connections = Connections
+label.output = Output
+label.editing = Editing
+label.das_settings = DAS Settings
+label.web_services = Web Services
+label.right_click_to_edit_currently_selected_parameter = Right click to edit currently selected parameter.
+label.let_jmol_manage_structure_colours = Let Jmol manage structure colours
+label.marks_leaves_tree_not_associated_with_sequence = Marks leaves of tree not associated with a sequence
+label.index_web_services_menu_by_host_site = Index web services in menu by the host site
+label.option_want_informed_web_service_URL_cannot_be_accessed_jalview_when_starts_up = Check this option if you want to be informed<br>when a web service URL cannot be accessed by Jalview<br>when it starts up
+label.new_service_url = New Service URL
+label.edit_service_url = Edit Service URL
+label.delete_service_url = Delete Service URL
+label.details = Details
+label.options = Options
+label.parameters = Parameters
+label.available_das_sources = Available DAS Sources
+label.full_details = Full Details
+label.authority = Authority
+label.type = Type
+label.proxy_server = Proxy Server
+label.file_output = File Output
+label.select_input_type = Select input type
+label.set_options_for_type = Set options for type
+label.data_input_parameters = Data input parameters
+label.data_returned_by_service = Data returned by service
+label.rsbs_encoded_service = RSBS Encoded Service
+label.parsing_errors = Parsing errors
+label.simple_bioinformatics_rest_services = Simple Bioinformatics Rest Services
+label.web_service_discovery_urls = Web Service Discovery URLS
+label.input_parameter_name = Input Parameter name
+label.short_descriptive_name_for_service = Short descriptive name for service
+label.function_service_performs = What kind of function the service performs (e.g. alignment, analysis, search, etc).
+label.brief_description_service = Brief description of service
+label.url_post_data_service = URL to post data to service. Include any special parameters needed here
+label.optional_suffix = Optional suffix added to URL when retrieving results from service
+label.preferred_gap_character = Which gap character does this service prefer?
+label.gap_character = Gap character
+label.move_return_type_up_order= Move return type up order
+label.move_return_type_down_order= Move return type down order
+label.update_user_parameter_set = Update this existing user parameter set
+label.delete_user_parameter_set = Delete the currently selected user parameter set
+label.create_user_parameter_set = Create a new parameter set with the current settings.
+label.revert_changes_user_parameter_set = Undo all changes to the current parameter set
+label.start_job_current_settings = Start Job with current settings
+label.cancel_job_close_dialog = Close this dialog and cancel job
+label.input_output = Input/Output
+label.cut_paste = Cut'n'Paste
+label.adjusting_parameters_for_calculation = Adjusting parameters for existing Calculation
+label.2d_rna_structure_line = 2D RNA {0}
+label.2d_rna_sequence_name = 2D RNA - {0}
+label.edit_name_and_description_current_group = Edit name and description of current group.
+label.view_structure_for = View structure for {0}
+label.view_all_structures = View all {0} structures.
+label.view_all_representative_structures = View all {0} representative structures.
+label.open_new_jmol_view_with_all_representative_structures_associated_current_selection_superimpose_using_alignment = Opens a new Jmol view with all representative structures\nassociated with the current selection\nsuperimposed with the current alignment.
+label.associate_structure_with_sequence = Associate Structure with Sequence
+label.from_file = from file
+label.enter_pdb_id = Enter PDB Id
+label.discover_pdb_ids = Discover PDB ids
+label.text_colour = Text Colour
+label.structure = Structure
+label.view_structure = View Structure
+label.clustalx_colours = Clustalx colours
+label.above_identity_percentage = Above % Identity
+label.create_sequence_details_report_annotation_for = Annotation for {0}
+label.sequece_details_for = Sequece Details for {0}
+label.sequence_name = Sequence Name
+label.sequence_description = Sequence Description
+label.edit_sequence_name_description = Edit Sequence Name/Description
+label.spaces_converted_to_backslashes = Spaces have been converted to _
+label.no_spaces_allowed_sequence_name = No spaces allowed in Sequence Name
+label.select_outline_colour = Select Outline Colour
+label.web_browser_not_found_unix = Unixers\: Couldn't find default web browser.\nAdd the full path to your browser in Preferences."
+label.web_browser_not_found = Web browser not found
+label.select_pdb_file_for = Select a PDB file for {0}
+label.html = HTML
+label.wrap = Wrap
+label.show_database_refs = Show Database Refs
+label.show_non_positional_features = Show Non-Positional Features
+label.save_png_image = Save As PNG Image
+label.load_tree_for_sequence_set = Load a tree for this sequence set
+label.export_image = Export Image
+label.vamsas_store = VAMSAS store
+label.translate_cDNA = Translate cDNA
+label.extract_scores = Extract Scores
+label.get_cross_refs = Get Cross References
+label.sort_alignment_new_tree = Sort Alignment With New Tree
+label.add_sequences = Add Sequences
+label.new_window = New Window
+label.refresh_available_sources = Refresh Available Sources
+label.use_registry = Use Registry
+label.add_local_source = Add Local Source
+label.set_as_default = Set as Default
+label.show_labels = Show labels
+label.background_colour = Background Colour
+label.associate_nodes_with = Associate Nodes With
+label.jalview_pca_calculation = Jalview PCA Calculation
+label.link_name = Link Name
+label.pdb_file = PDB file
+label.colour_with_jmol = Colour with Jmol
+label.align_structures = Align structures
+label.jmol = Jmol
+label.sort_alignment_by_tree = Sort Alignment By Tree
+label.mark_unlinked_leaves = Mark Unlinked Leaves
+label.associate_leaves_with = Associate Leaves With
+label.save_colour_scheme_with_unique_name_added_to_colour_menu = Save your colour scheme with a unique name and it will be added to the Colour menu
+label.case_sensitive = Case Sensitive
+label.lower_case_colour = Lower Case Colour
+label.index_by_host = Index by host
+label.index_by_type = Index by type
+label.enable_jabaws_services = Enable JABAWS Services
+label.display_warnings = Display warnings
+label.move_url_up = Move URL up
+label.move_url_down = Move URL down
+label.add_sbrs_definition = Add a SBRS definition
+label.edit_sbrs_definition = Edit SBRS definition
+label.delete_sbrs_definition = Delete SBRS definition
+label.your_sequences_have_been_verified = Your sequences have been verified against known sequence databases. Some of the ids have been\n altered, most likely the start/end residue will have been updated.\n Save your alignment to maintain the updated id.\n\n
+label.sequence_names_updated = Sequence names updated
+label.dbref_search_completed = DBRef search completed
+label.show_all_chains = Show all chains
+label.fetch_all_param = Fetch all {0}
+label.paste_new_window = Paste To New Window
+label.settings_for_param = Settings for {0}
+label.view_params = View {0}
+label.select_all_views = Select all views
+label.align_sequences_to_existing_alignment = Align sequences to an existing alignment
+label.realign_with_params = Realign with {0}
+label.calcname_with_default_settings = {0} with Defaults
+label.action_with_default_settings = {0} with default settings
+label.edit_settings_and_run = Edit settings and run...
+label.view_and_change_parameters_before_alignment = View and change the parameters before alignment
+label.run_with_preset_params = Run {0} with preset
+label.view_and_change_parameters_before_running_calculation = View and change parameters before running calculation
+label.view_documentation = View documentation
+label.select_return_type = Select return type
+label.translation_of_params = Translation of {0}
+label.features_for_params = Features for - {0}
+label.annotations_for_params = Annotations for - {0}
+label.generating_features_for_params = Generating features for - {0}
+label.generating_annotations_for_params = Generating annotations for - {0}
+label.varna_params = VARNA - {0}
+label.sequence_feature_settings = Sequence Feature Settings
+label.pairwise_aligned_sequences = Pairwise Aligned Sequences
+label.original_data_for_params = Original Data for {0}
+label.points_for_params = Points for {0}
+label.transformed_points_for_params = Transformed points for {0}
+label.graduated_color_for_params = Graduated Feature Colour for {0}
+label.select_backgroud_colour = Select Background Colour
+label.invalid_font = Invalid Font
+label.separate_multiple_accession_ids = Separate multiple accession ids with semi colon ";"
+label.replace_commas_semicolons = Replace commas with semi-colons
+label.parsing_failed_syntax_errors_shown_below_param = Parsing failed. Syntax errors shown below {0}
+label.parsing_failed_unrecoverable_exception_thrown_param = \nParsing failed. An unrecoverable exception was thrown\:\n {0}
+label.example_query_param = Example query: {0}
+label.enter_value_increase_conservation_visibility = Enter value to increase conservation visibility
+label.enter_percentage_identity_above_which_colour_residues = Enter % identity above which to colour residues
+label.wswublast_client_credits = To display sequence features an exact Uniprot id with 100% sequence identity match must be entered.\nIn order to display these features, try changing the names of your sequences to the ids suggested below.\n\nRunning WSWUBlast at EBI.\nPlease quote Pillai S., Silventoinen V., Kallio K., Senger M., Sobhany S., Tate J., Velankar S., Golovin A., Henrick K., Rice P., Stoehr P., Lopez R.\nSOAP-based services provided by the European Bioinformatics Institute.\nNucleic Acids Res. 33(1)\:W25-W28 (2005));
 label.blasting_for_unidentified_sequence = BLASTing for unidentified sequences
-label.select_columns_containing = Select columns containing\r
-label.select_columns_not_containing = Select columns that do not contain\r
-option.trim_retrieved_seqs = Trim retrieved sequences\r
-label.trim_retrieved_sequences = When the reference sequence is longer than the sequence that you are working with, only keep the relevant subsequences.\r
-label.choose_annotations = Choose annotations to show or hide\r
-label.show_selected_annotations = Show selected annotation types\r
-label.hide_selected_annotations = Hide selected annotation types\r
-label.add_reference_annotations = Add reference annotations\r
-label.find = Find\r
-error.invalid_regex = Invalid regular expression\r
-label.invalid_search = Search string invalid\r
-label.find_tip = <html>Search alignment, selection or sequence ids for a subsequence (ignoring gaps).<br>Accepts regular expressions - search Help for 'regex' for details.\r
-label.delete_all = Delete all sequences\r
-warn.delete_all = <html>Deleting all sequences will close the alignment window.<br>Confirm deletion or Cancel.\r
+label.select_columns_containing = Select columns containing
+label.select_columns_not_containing = Select columns that do not contain
+option.trim_retrieved_seqs = Trim retrieved sequences
+label.trim_retrieved_sequences = When the reference sequence is longer than the sequence that you are working with, only keep the relevant subsequences.
+label.use_sequence_id_1 = Use $SEQUENCE_ID$ or $SEQUENCE_ID=/<regex>/=$
+label.use_sequence_id_2 = \nto embed sequence id in URL
+label.ws_parameters_for = Parameters for {0}
+label.switch_server = Switch server
+label.open_jabaws_web_page = Opens the JABAWS server's homepage in web browser
+label.choose_jabaws_server = Choose a server for running this service
+label.services_at = Services at {0}
+label.rest_client_submit = {0} using {1}
+label.fetch_retrieve_from =Retrieve from {0}</html>
+label.fetch_retrieve_from_all_sources = Retrieve from all {0} sources in {1}<br>First is :{2}<html> 
+label.feature_settings_click_drag = <html>Click/drag feature types up or down to change render order.<br/>Double click to select columns containing feature in alignment/current selection<br/>Pressing Alt will select columns outside features rather than inside<br/>Pressing Shift to modify current selection (rather than clear current selection)<br/>Press CTRL or Command/Meta to toggle columns in/outside features<br/></html>
+label.opt_and_params_further_details = see further details by right-clicking
+label.opt_and_params_show_brief_desc_image_link = <html>Click to show brief description<br><img src="{0}"/> Right click for further information.</html> 
+label.opt_and_params_show_brief_desc = <html>Click to show brief description<br></html>
+label.adjusts_width_generated_eps_png = <html>Adjusts the width of the generated EPS or PNG file to ensure even the longest sequence ID or annotation label is displayed</html>
+label.manually_specify_width_left_column = <html>Manually specify the width of the left hand column where sequence IDs and annotation labels will be rendered in exported alignment figures. This setting will be ignored if 'Automatically set ID width' is set</html>
+label.job_created_when_checked = <html>When checked, a job is created for every sequence in the current selection.</html>
+label.when_checked_job_visible_region_and_results = <html>When checked, a single job is created for the visible region and results mapped back onto their location in the alignment. Otherwise, a job would be created for every contiguous region visible in the alignment or current selection (e.g. a multiple alignment).</html>
+label.flat_file_representation = <html>Flat file representation of this rest service using the Really Simple Bioinformatics Service formalism</html>
+label.result_of_parsing_rsbs = <html>Results of parsing the RSBS representation</html>
+label.user_preset = User Preset
+label.service_preset = Service Preset
+label.run_with_preset = Run {0} with preset
+label.view_service_doc_url = <html>View <a href="{0}">{1}</a></html>
+label.submit_sequence = <html>Submit {0} {1} {2} {3} to<br/>{4}</html>
+action.by_title_param = by {0}
+label.alignment = Alignment
+label.secondary_structure_prediction = Secondary Structure Prediction
+label.sequence_database_search = Sequence Database Search
+label.analysis = Analysis
+label.protein_disorder = Protein Disorder 
+label.source_from_db_source = Sources from {0}
+label.from_msname = from {0}
+label.superpose_with = Superpose with ...
+action.do = Do
+label.scale_label_to_column = Scale Label to Column
+label.add_new_row = Add New Row
+label.edit_label_description = Edit Label/Description
+label.hide_row = Hide This Row
+label.delete_row = Delete This Row
+label.show_all_hidden_rows = Show All Hidden Rows
+label.export_annotation = Export Annotation
+label.copy_consensus_sequence = Copy Consensus Sequence
+label.helix = Helix
+label.sheet = Sheet
+label.rna_helix = RNA Helix
+label.remove_annotation = Remove Annotation
+label.colour_by = Colour by...
+label.muscle_multiple_protein_sequence_alignment = Muscle Multiple Protein Sequence Alignment
+label.mafft_multiple_sequence_alignment = MAFFT Multiple Sequence Alignment
+label.clustalw_multiple_sequence_alignment = ClustalW Multiple Sequence Alignment
+label.jnet_secondary_structure_prediction = JNet Secondary Structure Prediction
+label.multiharmony = Multi-Harmony
+label.unable_start_web_service_analysis = Unable to start web service analysis
+label.job_couldnt_be_started_check_input = The Job couldn't be started. Please check your input, and the Jalview console for any warning messages.
+label.prompt_each_time = Prompt each time
+label.use_source = Use Source
+label.couldnt_save_project = Couldn't save project
+label.error_whilst_saving_current_state_to = Error whilst saving current state to {0}
+label.error_whilst_loading_project_from = Error whilst loading project from {0}
+label.couldnt_load_project = Couldn't load project
+label.pca_sequences_not_aligned = The sequences must be aligned before calculating PCA.\nTry using the Pad function in the edit menu,\nor one of the multiple sequence alignment web services.
+label.invalid_name_preset_exists = Invalid name - preset already exists.
+label.invalid_name = Invalid name
+label.set_proxy_settings = Please set up your proxy settings in the 'Connections' tab of the Preferences window
+label.proxy_authorization_failed = Proxy Authorization Failed
+label.internal_jalview_error = Internal Jalview Error
+label.secondary_structure_prediction_service_couldnt_be_located = The Secondary Structure Prediction Service named {0} at {1} couldn't be located.
+label.service_called_is_not_msa_service = The Service called \n{0}\nis not a \nMultiple Sequence Alignment Service\!
+label.msa_service_is_unknown = The Multiple Sequence Alignment Service named {0} is unknown
+label.service_called_is_not_seq_search_service = The Service called \n{0}\nis not a \nSequence Search Service\!
+label.seq_search_service_is_unknown = The Sequence Search Service named {0} is unknown
+label.feature_type = Feature Type
+label.display = Display
+label.service_url = Service URL
+label.copied_sequences = Copied sequences
+label.cut_sequences = Cut Sequences
+label.conservation_colour_increment = Conservation Colour Increment ({0})
+label.percentage_identity_thereshold = Percentage Identity Thereshold ({0})
+label.error_unsupported_owwner_user_colour_scheme = Unsupported owner for User Colour scheme dialog
+label.save_alignment_to_file = Save Alignment to file
+label.save_features_to_file = Save Features to File
+label.save_annotation_to_file = Save Annotation to File
+label.no_features_on_alignment = No features found on alignment
+label.save_pdb_file = Save PDB File
+label.save_text_to_file = Save Text to File
+label.save_state = Save State
+label.restore_state = Restore State
+label.saving_jalview_project = Saving jalview project {0}
+label.loading_jalview_project = Loading jalview project {0}
+label.save_vamsas_document_archive = Save Vamsas Document Archive
+label.saving_vamsas_doc = Saving VAMSAS Document to {0}
+label.load_feature_colours = Load Feature Colours
+label.save_feature_colours = Save Feature Colour Scheme
+label.dataset_for = {0} Dataset for {1}
+label.select_startup_file = Select startup file
+label.select_default_browser = Select default web browser
+label.save_tree_as_newick = Save tree as newick file
+label.create_eps_from_tree = Create EPS file from tree
+label.create_png_from_tree = Create PNG image from tree
+label.save_colour_scheme = Save colour scheme
+label.edit_params_for = Edit parameters for {0}
+label.choose_filename_for_param_file = Choose a filename for this parameter file
+label.save_as_html = Save as HTML
+label.recently_opened = Recently Opened
+label.blasting_for_unidentified_sequence_jobs_running = BLASTing for unidentified sequences - {0}  jobs running.
+label.tree_from = Tree from {0}
+label.webservice_job_title = {0} using {1}
+label.select_visible_region_of = selected {0} region of {1}
+label.visible = Visible
+label.select_unselect_visible_regions_from = select and unselected {0} regions from {1}
+label.visible_region_of = visible region of
+label.webservice_job_title_on = {0} using {1} on {2}
+label.updating_vamsas_session = Updating vamsas session
+label.loading_file = Loading File: {0}
+label.edit_params = Edit {0}
+error.not_implemented = Not implemented
+error.no_such_method_as_clone1_for = No such method as clone1 for {0}
+error.null_from_clone1 = Null from clone1!
+error.implementation_error_sortbyfeature = Implementation Error - sortByFeature method must be one of FEATURE_SCORE, FEATURE_LABEL or FEATURE_DENSITY.
+error.not_yet_implemented = Not yet implemented
+error.unknown_type_dna_or_pep = Unknown Type {0} - dna or pep are the only allowed values.
+error.implementation_error_dont_know_thereshold_annotationcolourgradient = Implementation error: don't know about threshold setting for current AnnotationColourGradient.
+error.implementation_error_embeddedpopup_not_null = Implementation error - embeddedPopup must be non-null
+error.invalid_colour_for_mycheckbox = Invalid color for MyCheckBox
+error.implementation_error_unrecognised_render_object_for_features_type = Implementation Error: Unrecognised render object {0} for features of type {1}
+error.implementation_error_unsupported_feature_colour_object = Implementation error: Unsupported feature colour object.
+error.invalid_separator_parameter = Invalid separator parameter - must be non-zero length
+error.alignment_cigararray_not_implemented = Alignment(CigarArray) not yet implemented
+error.weak_sequencei_equivalence_not_yet_implemented = Weak sequenceI equivalence not yet implemented.
+error.implementation_error_can_only_make_alignmnet_from_cigararray = Implementation Error - can only make an alignment view from a CigarArray of sequences.
+error.empty_view_cannot_be_updated = empty view cannot be updated.
+error.mismatch_between_number_of_sequences_in_block = Mismatch between number of sequences in block {0} ({1}) and the original view ({2})
+error.padding_not_yet_implemented = Padding not yet implemented
+error.mismatch_between_visible_blocks_to_update_and_number_of_contigs_in_view = Mismatch between visible blocks to update and number of contigs in view (contigs=0,blocks={0})
+error.unknown_seq_cigar_operation = Unknown SeqCigar operation {0}
+error.implementation_bug_parse_cigar_string = Implementation bug in parseCigarString
+error.implementation_error_invalid_operation_string = Implementation error. Invalid operation string.
+error.invalid_range_string = Invalid range string (must be zero or positive number)
+error.implementation_error_delete_range_out_of_bounds = Implementation Error: deleteRange out of bounds: start must be non-negative and less than end.
+error.implementation_error = Implementation error
+error.implementation_error_unknown_operation = Implementation Error! Unknown operation {0}
+error.implementation_error_unexpected_null_from_get_sequence_and_deletions = Implementation Error - unexpected null from getSequenceAndDeletions
+error.implementation_error_set_seq_null = Implementation Error - _setSeq(null,...)
+error.implementation_error_s = Implementation Error: _s= {0}
+error.implementation_error_seqcigar_possible = SeqCigar: Possible implementation error: sequence is longer than dataset sequence
+error.implmentation_bug_seq_null = Implementation Bug. Null seq
+error.implementation_bug_cigar_operation_list_range_list = Implementation Bug. Cigar Operation list!= range list
+error.not_yet_implemented_cigar_object_from_cigar_string = NOT YET Implemented: Constructing a Cigar object from a cigar string and a gapped sequence.
+error.implementation_bug_cigar_operation = Implementation Bug. Cigar Operation {0} {1} not one of {2}, {3}, or {4}.
+error.implementation_error_for_new_cigar = Implementation error for new Cigar(SequenceI)
+error.implementation_error_cigar_seq_no_operations = Implementation error: {0}th sequence Cigar has no operations.
+error.implementation_error_jmol_getting_data = Implementation error - Jmol seems to be still working on getting its data - report at http://issues.jalview.org/browse/JAL-1016
+error.implementation_error_no_pdbentry_from_index = Implementation error - no corresponding pdbentry (for index {0}) to add sequences mappings to
+error.jmol_version_not_compatible_with_jalview_version = Jmol version {0} is not compatible with this version of Jalview. Report this problem at issues.jalview.org
+error.not_implemented_remove = Remove: Not implemented
+error.not_implemented_clone = Clone: Not implemented
+error.implementation_error_chimera_getting_data = Implementation error - Chimera seems to be still working on getting its data - report at http://issues.jalview.org/browse/JAL-1016
+error.call_setprogressbar_before_registering_handler = call setProgressBar before registering the progress bar's handler.
+label.cancelled_params = Cancelled {0}
+error.implementation_error_cannot_show_view_alignment_frame = Implementation error: cannot show a view from another alignment in an AlignFrame.
+error.implementation_error_dont_know_about_thereshold_setting = Implementation error: don't know about threshold setting for current AnnotationColourGradient.
+error.eps_generation_not_implemented = EPS Generation not yet implemented
+error.png_generation_not_implemented = PNG Generation not yet implemented
+error.try_join_vamsas_session_another = Trying to join a vamsas session when another is already connected
+error.invalid_vamsas_session_id = Invalid vamsas session id
+error.implementation_error_cannot_create_groovyshell = Implementation Error. Cannot create groovyShell without Groovy on the classpath!
+label.groovy_support_failed = Jalview Groovy Support Failed
+label.couldnt_create_groovy_shell = Couldn't create the groovy Shell. Check the error log for the details of what went wrong.
+error.unsupported_version_calcIdparam = Unsupported Version for calcIdparam {0}
+error.implementation_error_cant_reorder_tree = Implementation Error: Can't reorder this tree. Not DefaultMutableTreeNode.
+error.invalid_value_for_option = Invalid value {0} for option {1}
+error.implementation_error_cannot_import_vamsas_doc = Implementation Error - cannot import existing vamsas document into an existing session, Yet!
+label.vamsas_doc_couldnt_be_opened_as_new_session = VAMSAS Document could not be opened as a new session - please choose another
+error.implementation_error_vamsas_operation_not_init = Impementation error! Vamsas Operations when client not initialised and connected
+error.jalview_no_connected_vamsas_session = Jalview not connected to Vamsas session
+error.implementation_error_cannot_recover_vamsas_object_mappings = IMPLEMENTATION ERROR: Cannot recover vamsas object mappings - no backup was made
+error.setstatus_called_non_existent_job_pane = setStatus called for non-existent job pane {0}
+error.implementation_error_cannot_find_marshaller_for_param_set =Implementation error: Can't find a marshaller for the parameter set
+error.implementation_error_old_jalview_object_not_bound =IMPLEMENTATION ERROR: old jalview object is not bound ! ({0})
+error.implementation_error_vamsas_doc_class_should_bind_to_type = Implementation Error: Vamsas Document Class {0} should bind to a {1} (found a {2})
+error.implementation_error_jalview_class_should_bind_to_type = Implementation Error: Jalview Class {0} should bind to a {1} (found a {2})
+error.invalid_vamsas_rangetype_cannot_resolve_lists = Invalid vamsas RangeType - cannot resolve both lists of Pos and Seg from choice!
+error.implementation_error_maplist_is_null = Implementation error. MapList is null for initMapType.
+error.implementation_error_cannot_have_null_alignment = Implementation error: Cannot have null alignment property key
+error.implementation_error_null_fileparse = Implementation error. Null FileParse in copy constructor
+error.implementation_error_cannot_map_alignment_sequences = IMPLEMENTATION ERROR: Cannot map an alignment of sequences from different datasets into a single alignment in the vamsas document.
+error.implementation_error_cannot_duplicate_colour_scheme = Serious implementation error: cannot duplicate colourscheme {0}
+error.implementation_error_structure_selection_manager_null = Implementation error. Structure selection manager's context is 'null'
+exception.ssm_context_is_null = SSM context is null
+error.idstring_seqstrings_only_one_per_sequence = idstrings and seqstrings contain one string each per sequence
+error.cannot_have_mixed_length_replacement_vectors = Cannot have mixed length replacement vectors. Replacement vector for {0} is {1} strings long, and have already seen a {2} length vector.
+error.cannot_have_zero_length_vector_replacement_strings = Cannot have zero length vector of replacement strings - either 1 value or n values.
+error.implementation_error_multiple_single_sequence_prediction_jobs_not_supported = Implementation Error! Multiple single sequence prediction jobs are not yet supported
+error.implementation_error_invalid_msa_index_for_job =Implementation Error! Invalid msaIndex for JPredJob on parent MSA input object!
+error.implementation_error_startjob_called = Implementation error - StartJob(JpredJob) called on {0}
+error.multiple_jnet_subjob_merge_not_implemented = Multiple JNet subjob merging not yet implemented
+label.job_never_ran = Job never ran - input returned to user.
+error.implementation_error_minlen_must_be_greater_zero = Implementation error: minlen must be zero or more
+error.implementation_error_msawbjob_called = Implementation error - StartJob(MsaWSJob) called on a WSJobInstance {0}
+error.implementation_error_cannot_attach_ws_menu_entry = IMPLEMENTATION ERROR: cannot attach WS Menu Entry without service handle reference!
+error.parameter_migration_not_implemented_yet = Parameter migration not implemented yet
+error.implementation_error_cannot_set_jaba_option = Implementation error: cannot set Jaba Option to a value outside its allowed value range!
+error.implementation_error_valuetype_doesnt_support_jabaws_type = IMPLEMENTATION ERROR: jalview.ws.params.ValueConstrainI.ValueType does not support the JABAWS type : {0}
+error.cannot_create_jabaws_param_set = Cannot create a JabaWSParamSet from non-JabaWS parameters
+error.cannot_set_arguments_to_jabaws_param_set = Cannot set arguments to a JabaWSParamSet that are not JabaWS arguments
+error.implementation_error_runner_config_not_available = Implementation Error: Runner Config not available for a JABAWS service of type {0} ({1})
+error.implementation_error_cannot_handle_jaba_param = Implementation Error: Cannot handle Jaba parameter object {0}
+error.implementation_error_attempt_to_delete_service_preset = Implementation error: Attempt to delete a service preset!
+error.implementation_error_cannot_locate_oldname_presetname = Implementation error: Can't locate either oldname ({0}) or presetName ({1}in the datastore!"
+error.implementation_error_jabaws_param_set_only_handled_by = Implementation error: JabaWsParamSets can only be handled by JabaParamStore
+error.cannot_set_source_file_for = Cannot set source file for {0}
+error.mismatch_service_instance_preset = Probable mismatch between service instance and preset!
+error.cannot_set_params_for_ws_preset = Cannot set Parameters for a Jaba Web service's preset
+error.implementation_error_can_only_instantiate_jaba_param_sets = Implementation error: Can only instantiate Jaba parameter sets
+error.no_aacon_service_found = No AACon service found
+error.implementation_error_couldnt_copy_value_constraint = Implementation error: could not copy ValueConstrain!
+error.couldnt_encode_as_utf8 = Couldn't encode {0} as UTF-8.
+error.tree_inputtype_not_yet_implemented = Tree InputType not yet implemented
+error.implementation_error_need_to_have_httpresponse = Implementation Error: need to have an HttpResponse to process
+error.dbrefsource_implementation_exception =DBRefSource Implementation Exception
+error.implementation_error_dbinstance_must_implement_interface = Implmentation Error - getDbInstances must be given a class that implements jalview.ws.seqfetcher.DbSourceProxy (was given{0})
+error.implementation_error_must_init_dbsources =Implementation error. Must initialise dbSources
+label.view_controller_toggled_marked = {0} {1} columns {2} containing features of type {3}  across {4} sequence(s)
+label.toggled = Toggled
+label.marked = Marked
+label.not = not
+label.no_feature_of_type_found = No features of type {0} found.
+label.submission_params = Submission {0}
+label.empty_alignment_job = Empty Alignment Job
+label.add_new_sbrs_service = Add a new Simple Bioinformatics Rest Service
+label.edit_sbrs_entry = Edit Simple Bioinformatics Rest Service entry
+label.pca_recalculating = Recalculating PCA
+label.pca_calculating = Calculating PCA
+label.select_foreground_colour = Choose foreground colour
+label.select_colour_for_text = Select Colour for Text
+label.adjunst_foreground_text_colour_thereshold = Adjust Foreground Text Colour Threshold
+label.select_subtree_colour = Select Sub-Tree Colour
+label.create_new_sequence_features = Create New Sequence Feature(s)
+label.amend_delete_features = Amend/Delete Features for {0}
+exception.out_of_bounds_for_file = Out of bounds for file: i={0}, Final Buffer: i0={1} iend={2}
+exception.null_string_given_to_regex_search = Null String Given to Regex.search
+exception.null_string_like_given_to_regex_search = Null StringLike Given to Regex.search
+exception.null_string_given_to_regex_reverse_search = Null String Given to Regex.reverseSearch
+exception.null_string_like_given_to_regex_reverse_search = Null StringLike Given to Regex.reverseSearch
+exception.null_string_like_given_to_regex_search_from = Null String Given to Regex.searchFrom
+exception.null_string_like_given_to_regex_search_region = Null String Given to Regex.searchRegion
+exception.replace_null_regex_pointer = Replacer has null Regex pointer
+exception.bad_pattern_to_regex_perl_code = bad pattern to Regex.perlCode: {0}
+exception.no_stub_implementation_for_interface = There is no stub implementation for the interface: {0}
+exception.cannot_set_endpoint_address_unknown_port = Cannot set Endpoint Address for Unknown Port {0}
+exception.querying_matching_opening_parenthesis_for_non_closing_parenthesis = Querying matching opening parenthesis for non-closing parenthesis character {0}
+exception.mismatched_unseen_closing_char = Mismatched (unseen) closing character {0}
+exception.mismatched_closing_char = Mismatched closing character {0}
+exception.mismatched_opening_char = Mismatched opening character {0} at {1}
+exception.invalid_datasource_couldnt_obtain_reader = Invalid datasource. Could not obtain Reader
+exception.index_value_not_in_range = {0}: Index value {1} not in range [0..{2}]
+exception.unterminated_cigar_string = Unterminated cigar string
+exception.unexpected_operation_cigar_string_pos = Unexpected operation {0} in cigar string (position {1} in {2}
+exception.couldnt_parse_responde_from_annotated3d_server = Couldn't parse response from Annotate3d server
+exception.application_test_npe = Application test: throwing an NullPointerException It should arrive at the console
+exception.overwriting_vamsas_id_binding = Overwriting vamsas id binding
+exception.overwriting_jalview_id_binding = Overwriting jalview id binding
+error.implementation_error_unknown_file_format_string = Implementation error: Unknown file format string
+exception.failed_to_resolve_gzip_stream = Failed to resolve GZIP stream
+exception.problem_opening_file_also_tried = Problem opening {0} (also tried {1}) : {2}
+exception.problem_opening_file = Problem opening {0} : {1}
+exception.failed_to_read_data_from_source = Failed to read data from source: {0}
+exception.no_init_source_stream = Unitialised Source Stream
+exception.invalid_source_stream = Invalid Source Stream: {0}
+error.implementation_error_reset_called_for_invalid_source = Implementation Error: Reset called for invalid source.
+exception.number_of_residues_in_query_sequence_differ_from_prediction = Number of residues in {0} supposed query sequence ({1}\n{2})\ndiffer from number of prediction sites in prediction ({3})
+label.mapped = mapped
+exception.jpredconcide_entry_has_unexpected_number_of_columns = JPredConcise: Entry ({0}) has an unexpected number of columns
+exception.couldnt_parse_concise_annotation_for_prediction = Couldn't parse concise annotation for prediction profile.\n{0}
+exception.newfile = NewickFile\: {0}\n
+label.no_tree_read_in = No Tree read in
+exception.rnaml_couldnt_access_datasource = Couldn't access datasource ({0})
+exception.ranml_couldnt_process_data = Couldn't process data as RNAML file ({0})
+exception.ranml_invalid_file = Invalid RNAML file ({0})
+exception.ranml_problem_parsing_data = Problem parsing data as RNAML ({0})
+exception.pfam_no_sequences_found = No sequences found (PFAM input)
+exception.stockholm_invalid_format = This file is not in valid STOCKHOLM format: First line does not contain '# STOCKHOLM'
+exception.couldnt_parse_sequence_line = Could not parse sequence line: {0}
+exception.error_parsing_line = Error parsing {0}
+exception.unknown_annotation_detected = Unknown annotation detected: {0} {1}
+exception.couldnt_store_sequence_mappings = Couldn't store sequence mappings for {0}
+exception.matrix_too_many_iteration = Too many iterations in {0} (max is {1})
+exception.browser_not_found = Exception in finding browser: {0}
+exception.browser_unable_to_locate = Unable to locate browser: {0}
+exception.invocation_target_exception_creating_aedesc = InvocationTargetException while creating AEDesc: {0}
+exception.illegal_access_building_apple_evt= IllegalAccessException while building AppleEvent: {0}
+exception.instantiation_creating_aedesc = InstantiationException while creating AEDesc: {0}
+exception.unable_to_launch_url = Unable to launch URL: {0}
+exception.unable_to_create_internet_config = Unable to create an Internet Config instance: {0}
+exception.invocation_target_calling_url = InvocationTargetException while calling openURL: {0}
+exception.illegal_access_calling_url = IllegalAccessException while calling openURL: {0}
+exception.interrupted_launching_browser = InterruptedException while launching browser: {0}
+exception.das_source_doesnt_support_sequence_command = Source {0} does not support the sequence command.
+exception.invalid_das_source = Invalid das source: {0}
+exception.ebiembl_retrieval_failed_on = EBI EMBL XML retrieval failed on {0}:{1}
+label.no_embl_record_found = # No EMBL record retrieved for {0}:{1}
+label.embl_successfully_parsed = # Successfully parsed the {0} queries into an Alignment
+exception.no_pdb_records_for_chain = No PDB Records for {0} chain {1}
+exception.unexpected_handling_rnaml_translation_for_pdb = Unexpected exception when handling RNAML translation of PDB data
+exception.couldnt_recover_sequence_properties_for_alignment = Couldn't recover sequence properties for alignment
+exception.unknown_format_for_file = Unknown format {0} for file \: \n{1}
+label.remove_gaps = Remove Gaps
+exception.couldnt_recover_sequence_props_for_jnet_query = Couldn't recover sequence properties for JNet Query sequence!
+exception.server_timeout_try_later = Server timed out - try again later\n
+exception.web_service_returned_null_try_later= Server at {0} returned null object, it probably cannot be contacted. Try again later.
+exception.cannot_contact_service_endpoint_at = Cannot contact service endpoint at {0}
+error.implementation_error_cannot_find_service_url_in_given_set = Implementation error: Cannot find service url in the given url set!
+error.implementation_error_cannot_find_service_url_in_given_set_param_store = Implementation error: Cannot find service url in the given url set for this service parameter store ({0}}
+exception.jobsubmission_invalid_params_set = Invalid parameter set. Check Jalview implementation
+exception.notvaliddata_group_contains_less_than_min_seqs = Group contains less than {0} sequences.
+exception.outofmemory_loading_pdb_file = Out of memory loading PDB File
+exception.eps_coudnt_write_output_file = Could not write to the output file: {0}
+exception.eps_method_not_supported = Method not currently supported by EpsGraphics2D version {0}
+exception.eps_unable_to_get_inverse_matrix = Unable to get inverse of matrix: {0}
+warn.job_cannot_be_cancelled_close_window = This job cannot be cancelled.\nJust close the window.
+warn.service_not_supported = Service not supported!
+warn.input_is_too_big = Input is too big!
+warn.invalid_job_param_set = Invalid job parameter set!
+info.job_couldnt_be_run_server_doesnt_support_program = Job could not be run because the server doesn't support this program.\n{0}
+info.job_couldnt_be_run_exceeded_hard_limit = Job could not be run because it exceeded a hard limit on the server.\n{0}
+info.job_couldnt_be_run_incorrect_param_setting = Job could not be run because some of the parameter settings are not supported by the server.\n{0}\nPlease check to make sure you have used the correct parameter set for this service\!\n
+info.no_jobs_ran = No jobs ran
+info.failed_to_submit_prediction = Failed to submit the prediction\:\n{0} {1}
+info.invalid_jnet_job_result_data ={0}\n{1}\nInvalid JNet job result data\!\n{2}
+info.failed_to_submit_sequences_for_alignment = Failed to submit sequences for alignment.\nIt is most likely that there is a problem with the server.\nJust close the window\n
+info.alignment_object_method_notes = \nAlignment Object Method Notes\n
+info.server_exception = \n{0} Server exception\!\n{1}
+status.processing_commandline_args = Processing commandline arguments...
+status.das_features_being_retrived = DAS features being retrieved...
+status.searching_for_sequences_from = Searching for sequences from {0}
+status.finished_searching_for_sequences_from = Finished searching for sequences from {0}
+label.eps_file = EPS file
+label.png_image = PNG image
+status.saving_file = Saving {0}
+status.export_complete = Export complete.
+status.fetching_pdb = Fetching PDB {0}
+status.refreshing_news = Refreshing news
+status.importing_vamsas_session_from = Importing VAMSAS session from {0}
+status.opening_params = Opening {0}
+status.waiting_sequence_database_fetchers_init = Waiting for Sequence Database Fetchers to initialise
+status.init_sequence_database_fetchers = Initialising Sequence Database Fetchers
+status.fetching_sequence_queries_from = Fetching {0} sequence queries from {1}
+status.finshed_querying = Finished querying
+status.parsing_results = Parsing results.
+status.processing = Processing...
+status.refreshing_web_service_menus = Refreshing Web Service Menus
+status.collecting_job_results = Collecting job results.
+status.fetching_das_sequence_features = Fetching DAS Sequence Features
+status.no_das_sources_active = No DAS Sources Active
+status.das_feature_fetching_cancelled = DAS Feature Fetching Cancelled
+status.das_feature_fetching_complete = DAS Feature Fetching Complete
+status.fetching_db_refs = Fetching db refs
+label.font_doesnt_have_letters_defined = Font doesn't have letters defined\nso cannot be used\nwith alignment data
+label.error_loading_file_params = Error loading file {0}
+label.error_loading_jalview_file = Error loading Jalview file
+warn.out_of_memory_when_action = Out of memory when {0}\!\!\nSee help files for increasing Java Virtual Machine memory.
+warn.out_of_memory_loading_file = Out of memory loading file {0}\!\!\nSee help files for increasing Java Virtual Machine memory.
+label.out_of_memory = Out of memory
+label.invalid_id_column_width = Invalid ID Column width
+warn.user_defined_width_requirements = The user defined width for the\nannotation and sequence ID columns\nin exported figures must be\nat least 12 pixels wide.
+label.couldnt_create_sequence_fetcher = Couldn't create SequenceFetcher
+warn.couldnt_create_sequence_fetcher_client = Could not create the sequence fetcher client. Check error logs for details.
+warn.server_didnt_pass_validation = Service did not pass validation.\nCheck the Jalview Console for more details.
+warn.url_must_contain = Sequence URL must contain $SEQUENCE_ID$ or a regex $SEQUENCE_ID=/<regex>/=$
+info.validate_jabaws_server = Validate JabaWS Server ?\n(Look in console output for results)
+label.test_server = Test Server?
+info.you_want_jalview_to_find_uniprot_accessions = Do you want Jalview to find\nUniprot Accession ids for given sequence names?
+label.find_uniprot_accession_ids = Find Uniprot Accession Ids
+label.new_sequence_fetcher = New Sequence Fetcher
+label.additional_sequence_fetcher = Additional Sequence Fetcher
+label.select_database_retrieval_source = Select Database Retrieval Source
+label.overwrite_existing_file = Overwrite existing file?
+label.file_already_exists = File exists
+label.edit_jabaws_url = Edit JABAWS URL
+label.add_jabaws_url = Add new JABAWS URL
+label.news_from_jalview = News from http://www.jalview.org
+label.cut_paste_alignmen_file = Cut & Paste Alignment File
+label.enter_redundancy_thereshold = Enter the redundancy thereshold
+label.select_dark_light_set_thereshold = <html><i>Select a dark and light text colour, then set the threshold to<br>switch between colours, based on background colour</i></html>
+label.select_feature_colour = Select Feature Colour
+label.delete_all = Delete all sequences
+warn.delete_all = <html>Deleting all sequences will close the alignment window.<br>Confirm deletion or Cancel.
+label.add_annotations_for = Add annotations for
+label.choose_annotations = Choose annotations
index 2f94019..0f47cca 100644 (file)
@@ -4343,11 +4343,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
           // object broker mechanism.
           final Vector<JMenu> wsmenu = new Vector<JMenu>();
           final IProgressIndicator af = me;
-          final JMenu msawsmenu = new JMenu(MessageManager.getString("label.alignment"));
-          final JMenu secstrmenu = new JMenu(MessageManager.getString("label.secondary_structure_prediction"));
-          final JMenu seqsrchmenu = new JMenu(MessageManager.getString("label.sequence_database_search"));
-          final JMenu analymenu = new JMenu(MessageManager.getString("label.analysis"));
-          final JMenu dismenu = new JMenu(MessageManager.getString("label.protein_disorder"));
+          final JMenu msawsmenu = new JMenu("Alignment");
+          final JMenu secstrmenu = new JMenu(
+                  "Secondary Structure Prediction");
+          final JMenu seqsrchmenu = new JMenu("Sequence Database Search");
+          final JMenu analymenu = new JMenu("Analysis");
+          final JMenu dismenu = new JMenu("Protein Disorder");
+          // final JMenu msawsmenu = new
+          // JMenu(MessageManager.getString("label.alignment"));
+          // final JMenu secstrmenu = new
+          // JMenu(MessageManager.getString("label.secondary_structure_prediction"));
+          // final JMenu seqsrchmenu = new
+          // JMenu(MessageManager.getString("label.sequence_database_search"));
+          // final JMenu analymenu = new
+          // JMenu(MessageManager.getString("label.analysis"));
+          // final JMenu dismenu = new
+          // JMenu(MessageManager.getString("label.protein_disorder"));
           // JAL-940 - only show secondary structure prediction services from
           // the legacy server
           if (// Cache.getDefault("SHOW_JWS1_SERVICES", true)
index ec7b46e..4e25454 100755 (executable)
  */
 package jalview.gui;
 
-import java.util.*;
-import java.util.regex.Pattern;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.Annotation;
+import jalview.datamodel.Sequence;
+import jalview.datamodel.SequenceGroup;
+import jalview.datamodel.SequenceI;
+import jalview.io.FormatAdapter;
+import jalview.util.MessageManager;
 
-import java.awt.*;
-import java.awt.datatransfer.*;
-import java.awt.event.*;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.MediaTracker;
+import java.awt.RenderingHints;
+import java.awt.Toolkit;
+import java.awt.datatransfer.StringSelection;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
 import java.awt.geom.AffineTransform;
-import java.awt.image.*;
-import javax.swing.*;
+import java.awt.image.BufferedImage;
+import java.util.Vector;
+import java.util.regex.Pattern;
 
-import jalview.datamodel.*;
-import jalview.io.*;
-import jalview.util.MessageManager;
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
+import javax.swing.SwingUtilities;
+import javax.swing.ToolTipManager;
 
 /**
  * DOCUMENT ME!
@@ -115,7 +138,7 @@ public class AnnotationLabels extends JPanel implements MouseListener,
     Graphics2D g = (Graphics2D) bi.getGraphics();
     g.rotate(Math.toRadians(90));
     g.drawImage(temp, 0, -bi.getWidth(this), this);
-    image = (Image) bi;
+    image = bi;
 
     addMouseListener(this);
     addMouseMotionListener(this);
@@ -249,11 +272,18 @@ public class AnnotationLabels extends JPanel implements MouseListener,
       aa[selectedRow].scaleColLabel = !aa[selectedRow].scaleColLabel;
     }
 
+    refresh();
+
+  }
+
+  /**
+   * Redraw sensibly.
+   */
+  protected void refresh()
+  {
     ap.validateAnnotationDimensions(false);
     ap.addNotify();
     ap.repaint();
-    // validate();
-    // ap.paintAlignment(true);
   }
 
   /**
@@ -480,7 +510,7 @@ public class AnnotationLabels extends JPanel implements MouseListener,
    */
   public void mouseClicked(MouseEvent evt)
   {
-    AlignmentAnnotation[] aa = ap.av.getAlignment()
+    final AlignmentAnnotation[] aa = ap.av.getAlignment()
             .getAlignmentAnnotation();
     if (SwingUtilities.isLeftMouseButton(evt))
     {
@@ -556,6 +586,35 @@ public class AnnotationLabels extends JPanel implements MouseListener,
     item = new JMenuItem(HIDE);
     item.addActionListener(this);
     pop.add(item);
+    // JAL-1264 hide all sequence-specific annotations of this type
+    final String label = aa[selectedRow].label;
+    if (selectedRow < aa.length)
+    {
+      if (aa[selectedRow].sequenceRef != null)
+      {
+        JMenuItem hideType = new JMenuItem();
+        String text = MessageManager.getString("label.hide_all") + " " + label;
+        hideType.setText(text);
+        hideType.addActionListener(new ActionListener()
+        {
+          @Override
+          public void actionPerformed(ActionEvent e)
+          {
+            for (AlignmentAnnotation ann : ap.av.getAlignment()
+                    .getAlignmentAnnotation())
+            {
+              if (ann.sequenceRef != null && ann.label != null
+                      && ann.label.equals(label))
+              {
+                ann.visible = false;
+              }
+            }
+            refresh();
+          }
+        });
+        pop.add(hideType);
+      }
+    }
     item = new JMenuItem(DELETE);
     item.addActionListener(this);
     pop.add(item);
@@ -585,7 +644,7 @@ public class AnnotationLabels extends JPanel implements MouseListener,
           pop.add(item);
         }
       }
-      else if (aa[selectedRow].label.indexOf("Consensus") > -1)
+      else if (label.indexOf("Consensus") > -1)
       {
         pop.addSeparator();
         // av and sequencegroup need to implement same interface for
index 5f6c556..78c1592 100644 (file)
@@ -62,8 +62,8 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.BitSet;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Hashtable;
-import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
@@ -308,18 +308,18 @@ public class PopupMenu extends JPopupMenu
 
           menuItem = new JMenuItem();
           menuItem.setText(pdb.getId());
-          menuItem.addActionListener(new java.awt.event.ActionListener()
+          menuItem.addActionListener(new ActionListener() 
           {
-            public void actionPerformed(ActionEvent e)
-            {
-              // TODO re JAL-860: optionally open dialog or provide a menu entry
-              // allowing user to open just one structure per sequence
-              // new AppJmol(pdb, ap.av.collateForPDB(new PDBEntry[]
-              // { pdb })[0], null, ap);
-              new StructureViewer(ap.getStructureSelectionManager())
-                      .viewStructures(pdb,
-                              ap.av.collateForPDB(new PDBEntry[]
-                              { pdb })[0], null, ap);
+            @Override
+            public void actionPerformed(ActionEvent e) {
+            // TODO re JAL-860: optionally open dialog or provide a menu entry
+            // allowing user to open just one structure per sequence
+            // new AppJmol(pdb, ap.av.collateForPDB(new PDBEntry[]
+            // { pdb })[0], null, ap);
+           new StructureViewer(ap.getStructureSelectionManager())
+                    .viewStructures(pdb,
+                            ap.av.collateForPDB(new PDBEntry[]
+                            { pdb })[0], null, ap);
             }
           });
           viewStructureMenu.add(menuItem);
@@ -357,7 +357,6 @@ public class PopupMenu extends JPopupMenu
                     "label.2d_rna_structure_line", new String[]
                     { structureLine }));
             menuItem.addActionListener(new java.awt.event.ActionListener()
-
             {
               @Override
               public void actionPerformed(ActionEvent e)
@@ -811,11 +810,18 @@ public class PopupMenu extends JPopupMenu
    */
   protected void buildAnnotationTypesMenus()
   {
+    final SequenceGroup selectionGroup = ap.av.getSelectionGroup();
+    if (selectionGroup == null)
+    {
+      // this menu option is only for a selection
+      return;
+    }
+
     showAnnotationsMenu.removeAll();
     hideAnnotationsMenu.removeAll();
     final List<String> all = Arrays.asList(ALL_ANNOTATIONS);
-    addAnnotationTypeToShowHide(showAnnotationsMenu, all, true, true);
-    addAnnotationTypeToShowHide(hideAnnotationsMenu, all, true, false);
+    addAnnotationTypeToShowHide(showAnnotationsMenu, "", all, true, true);
+    addAnnotationTypeToShowHide(hideAnnotationsMenu, "", all, true, false);
     showAnnotationsMenu.addSeparator();
     hideAnnotationsMenu.addSeparator();
 
@@ -824,19 +830,31 @@ public class PopupMenu extends JPopupMenu
     BitSet visibleGraphGroups = PopupMenu
             .getVisibleLineGraphGroups(annotations);
 
-    List<List<String>> shownTypes = new ArrayList<List<String>>();
-    List<List<String>> hiddenTypes = new ArrayList<List<String>>();
+    /*
+     * Find shown/hidden annotations types, distinguished by source (calcId),
+     * and grouped by graphGroup.
+     */
+    Map<String, List<List<String>>> shownTypes = new HashMap<String, List<List<String>>>();
+    Map<String, List<List<String>>> hiddenTypes = new HashMap<String, List<List<String>>>();
     PopupMenu.getAnnotationTypesForShowHide(shownTypes, hiddenTypes,
-            visibleGraphGroups, annotations, ap.av.getSelectionGroup());
+            visibleGraphGroups, annotations, selectionGroup);
 
-    for (List<String> types : hiddenTypes)
+    for (String calcId : hiddenTypes.keySet())
     {
-      addAnnotationTypeToShowHide(showAnnotationsMenu, types, false, true);
+      for (List<String> type : hiddenTypes.get(calcId))
+      {
+        addAnnotationTypeToShowHide(showAnnotationsMenu, calcId, type,
+                false, true);
+      }
     }
 
-    for (List<String> types : shownTypes)
+    for (String calcId : shownTypes.keySet())
     {
-      addAnnotationTypeToShowHide(hideAnnotationsMenu, types, false, false);
+      for (List<String> type : shownTypes.get(calcId))
+      {
+        addAnnotationTypeToShowHide(hideAnnotationsMenu, calcId, type,
+                false, false);
+      }
     }
   }
 
@@ -858,19 +876,31 @@ public class PopupMenu extends JPopupMenu
    * </ul>
    * 
    * @param shownTypes
+   *          a map, keyed by calcId (annotation source), whose entries are the
+   *          lists of annotation types found for the calcId; each annotation
+   *          type in turn may be a list (in the case of grouped annotations)
    * @param hiddenTypes
+   *          a map, similar to shownTypes, but for hidden annotation types
    * @param visibleGraphGroups
+   *          a lookup keyed by graphGroup identifier
    * @param annotations
+   *          the annotations on the alignment to scan
    * @param sequenceGroup
+   *          the sequence group to restrict search to
    */
   public static void getAnnotationTypesForShowHide(
-          List<List<String>> shownTypes, List<List<String>> hiddenTypes,
+          Map<String, List<List<String>>> shownTypes,
+          Map<String, List<List<String>>> hiddenTypes,
           BitSet visibleGraphGroups, AlignmentAnnotation[] annotations,
           SequenceGroup sequenceGroup)
   {
-    // lookup table, key = graph group, value = list of types in the group
-    Map<Integer, List<String>> groupLabels = new LinkedHashMap<Integer, List<String>>();
+    /*
+     * Build a lookup, by calcId (annotation source), of all annotation types in
+     * each graph group.
+     */
+    Map<String, Map<Integer, List<String>>> groupLabels = new HashMap<String, Map<Integer, List<String>>>();
 
+    // trackers for which calcId!label combinations we have dealt with
     List<String> addedToShown = new ArrayList<String>();
     List<String> addedToHidden = new ArrayList<String>();
 
@@ -881,37 +911,63 @@ public class PopupMenu extends JPopupMenu
               || (aa.sequenceRef != null && sequenceGroup.getSequences()
                       .contains(aa.sequenceRef)))
       {
+        String calcId = aa.getCalcId();
+
         /*
          * Build a 'composite label' for types in line graph groups.
          */
         final List<String> labelAsList = new ArrayList<String>();
-        labelAsList.add(aa.label);
+        final String displayLabel = aa.label;
+        labelAsList.add(displayLabel);
         if (aa.graph == AlignmentAnnotation.LINE_GRAPH
                 && aa.graphGroup > -1)
         {
-          if (groupLabels.containsKey(aa.graphGroup))
+          if (!groupLabels.containsKey(calcId))
+          {
+            groupLabels.put(calcId, new HashMap<Integer, List<String>>());
+          }
+          Map<Integer, List<String>> groupLabelsForCalcId = groupLabels
+                  .get(calcId);
+          if (groupLabelsForCalcId.containsKey(aa.graphGroup))
           {
-            if (!groupLabels.get(aa.graphGroup).contains(aa.label))
+            if (!groupLabelsForCalcId.get(aa.graphGroup).contains(
+                    displayLabel))
             {
-              groupLabels.get(aa.graphGroup).add(aa.label);
+              groupLabelsForCalcId.get(aa.graphGroup).add(displayLabel);
             }
           }
           else
           {
-            groupLabels.put(aa.graphGroup, labelAsList);
+            groupLabelsForCalcId.put(aa.graphGroup, labelAsList);
           }
         }
-        else if (aa.visible && !addedToShown.contains(aa.label))
-        {
-          shownTypes.add(labelAsList);
-          addedToShown.add(aa.label);
-        }
         else
+        /*
+         * 'Simple case' - not a grouped annotation type - list of one label
+         * only
+         */
         {
-          if (!aa.visible && !addedToHidden.contains(aa.label))
+          String rememberAs = calcId + "!" + displayLabel;
+          if (aa.visible && !addedToShown.contains(rememberAs))
           {
-            hiddenTypes.add(labelAsList);
-            addedToHidden.add(aa.label);
+            if (!shownTypes.containsKey(calcId))
+            {
+              shownTypes.put(calcId, new ArrayList<List<String>>());
+            }
+            shownTypes.get(calcId).add(labelAsList);
+            addedToShown.add(rememberAs);
+          }
+          else
+          {
+            if (!aa.visible && !addedToHidden.contains(rememberAs))
+            {
+              if (!hiddenTypes.containsKey(calcId))
+              {
+                hiddenTypes.put(calcId, new ArrayList<List<String>>());
+              }
+              hiddenTypes.get(calcId).add(labelAsList);
+              addedToHidden.add(rememberAs);
+            }
           }
         }
       }
@@ -920,19 +976,27 @@ public class PopupMenu extends JPopupMenu
      * finally add the 'composite group labels' to the appropriate lists,
      * depending on whether the group is identified as visible or hidden
      */
-    for (int group : groupLabels.keySet())
+    for (String calcId : groupLabels.keySet())
     {
-      final List<String> groupLabel = groupLabels.get(group);
-      if (visibleGraphGroups.get(group))
+      for (int group : groupLabels.get(calcId).keySet())
       {
-        if (!shownTypes.contains(groupLabel))
+        final List<String> groupLabel = groupLabels.get(calcId).get(group);
+        if (visibleGraphGroups.get(group))
         {
-          shownTypes.add(groupLabel);
+          if (!shownTypes.containsKey(calcId))
+          {
+            shownTypes.put(calcId, new ArrayList<List<String>>());
+          }
+          shownTypes.get(calcId).add(groupLabel);
+        }
+        else
+        {
+          if (!hiddenTypes.containsKey(calcId))
+          {
+            hiddenTypes.put(calcId, new ArrayList<List<String>>());
+          }
+          hiddenTypes.get(calcId).add(groupLabel);
         }
-      }
-      else if (!hiddenTypes.contains(groupLabel))
-      {
-        hiddenTypes.add(groupLabel);
       }
     }
   }
@@ -975,6 +1039,7 @@ public class PopupMenu extends JPopupMenu
    * 
    * @param showOrHideMenu
    *          the menu to add to
+   * @param calcId
    * @param types
    *          the label to add
    * @param allTypes
@@ -984,12 +1049,13 @@ public class PopupMenu extends JPopupMenu
    *          type, else hide
    */
   protected void addAnnotationTypeToShowHide(JMenu showOrHideMenu,
-          final Collection<String> types, final boolean allTypes,
+          String calcId, final List<String> types, final boolean allTypes,
           final boolean actionIsShow)
   {
     String label = types.toString(); // [a, b, c]
     label = label.substring(1, label.length() - 1);
     final JMenuItem item = new JMenuItem(label);
+    item.setToolTipText(calcId);
     item.addActionListener(new java.awt.event.ActionListener()
     {
       @Override
@@ -1015,6 +1081,9 @@ public class PopupMenu extends JPopupMenu
     for (AlignmentAnnotation aa : ap.getAlignment()
             .getAlignmentAnnotation())
     {
+      // TODO: select by calcId (source of annotation) as well as label
+      // e.g. by refactoring of buildAnnotationTypeMenus to as
+      // to construct the actionPerformed methods as the calcId/labels are found
       if (anyType || types.contains(aa.label))
       {
         if ((aa.sequenceRef != null)
@@ -1517,19 +1586,7 @@ public class PopupMenu extends JPopupMenu
             .getString("label.show_annotations"));
     hideAnnotationsMenu.setText(MessageManager
             .getString("label.hide_annotations"));
-    final List<AlignmentAnnotation> referenceAnns = getDatasequenceAnnotationsNotOnAlignment(ap.av
-            .getSelectionGroup());
-    addDatasequenceAnnotations.setText(MessageManager
-            .getString("label.add_reference_annotations"));
-    addDatasequenceAnnotations.setEnabled(!referenceAnns.isEmpty());
-    addDatasequenceAnnotations.addActionListener(new ActionListener()
-    {
-      @Override
-      public void actionPerformed(ActionEvent e)
-      {
-        addReferenceAnnotations_actionPerformed(referenceAnns);
-      }
-    });
+    configureReferenceAnnotationsMenu();
     sequenceFeature.setText(MessageManager
             .getString("label.create_sequence_feature"));
     sequenceFeature.addActionListener(new ActionListener()
@@ -1813,56 +1870,135 @@ public class PopupMenu extends JPopupMenu
   }
 
   /**
-   * Get a list of any annotations on the dataset sequences in the current
-   * selection group that are not also on the alignment.
-   * <p/>
-   * The criteria for 'on the alignment' is finding an annotation that matches
-   * on sequenceRef.datasetSequence, calcId and label.
-   * 
-   * @return
+   * Check for any annotations on the underlying dataset sequences (for the
+   * current selection group) which are not on the alignment. If any are found,
+   * enable the option to add them to the alignment. The criteria for 'on the
+   * alignment' is finding an annotation that matches on
+   * sequenceRef.datasetSequence, calcId and label.
    */
-  protected List<AlignmentAnnotation> getDatasequenceAnnotationsNotOnAlignment(
-          SequenceGroup sg)
+  protected void configureReferenceAnnotationsMenu()
   {
-    List<AlignmentAnnotation> result = new ArrayList<AlignmentAnnotation>();
-    
-    for (SequenceI seq : sg.getSequences())
+    addDatasequenceAnnotations.setText(MessageManager
+            .getString("label.add_reference_annotations"));
+    addDatasequenceAnnotations.setEnabled(false);
+
+    /*
+     * Temporary store so we can write distinct calcId / type pairs on the
+     * tooltip.
+     */
+    Map<String, String> tipEntries = new HashMap<String, String>();
+    StringBuilder tooltip = new StringBuilder(64);
+    tooltip.append(MessageManager.getString("label.add_annotations_for"));
+
+    // this menu option only applies for a Selection
+    if (this.ap.av.getSelectionGroup() == null)
+    {
+      return;
+    }
+
+    /*
+     * For each sequence selected in the alignment, make a list of any
+     * annotations on the underlying dataset sequence which are not already on
+     * the sequence in the alignment.
+     * 
+     * Build a map of { alignmentSequence, <List of annotations to add> }
+     */
+    final Map<SequenceI, List<AlignmentAnnotation>> candidates = new HashMap<SequenceI, List<AlignmentAnnotation>>();
+    for (SequenceI seq : this.ap.av.getSelectionGroup().getSequences())
     {
       SequenceI dataset = seq.getDatasetSequence();
+      if (dataset == null)
+      {
+        continue;
+      }
       AlignmentAnnotation[] datasetAnnotations = dataset.getAnnotation();
-      if (datasetAnnotations != null)
+      if (datasetAnnotations == null)
+      {
+        continue;
+      }
+      final List<AlignmentAnnotation> result = new ArrayList<AlignmentAnnotation>();
+      for (AlignmentAnnotation dsann : datasetAnnotations)
       {
-        for (AlignmentAnnotation dsann : datasetAnnotations)
+        /*
+         * If the sequence has no annotation that matches this one, then add
+         * this one to the results list.
+         */
+        if (seq.getAlignmentAnnotations(dsann.getCalcId(), dsann.label)
+                .isEmpty())
         {
-          /*
-           * If the alignment has no annotation that matches this one...
-           */
-          if (!ap.getAlignment()
-                  .findAnnotation(dataset, dsann.getCalcId(), dsann.label)
-                  .iterator().hasNext())
-          {
-            /*
-             * ...then add it to the result list
-             */
-            result.add(dsann);
-          }
+          result.add(dsann);
+          tipEntries.put(dsann.getCalcId(), dsann.label);
         }
       }
+      /*
+       * Save any addable annotations for this sequence
+       */
+      if (!result.isEmpty())
+      {
+        candidates.put(seq, result);
+      }
+    }
+    if (!candidates.isEmpty())
+    {
+      /*
+       * Found annotations that could be added. Enable the menu item, and
+       * configure its tooltip and action.
+       */
+      addDatasequenceAnnotations.setEnabled(true);
+      for (String calcId : tipEntries.keySet())
+      {
+        tooltip.append("<br/>" + calcId + "/" + tipEntries.get(calcId));
+      }
+      String tooltipText = JvSwingUtils.wrapTooltip(true,
+              tooltip.toString());
+      addDatasequenceAnnotations.setToolTipText(tooltipText);
+
+      addDatasequenceAnnotations.addActionListener(new ActionListener()
+      {
+        @Override
+        public void actionPerformed(ActionEvent e)
+        {
+          addReferenceAnnotations_actionPerformed(candidates);
+        }
+      });
     }
-    return result;
   }
 
   /**
-   * Add any annotations on the sequence dataset to the alignment (that are not
-   * already copied to it).
+   * Add annotations to the sequences and to the alignment.
+   * 
+   * @param candidates
+   *          a map whose keys are sequences on the alignment, and values a list
+   *          of annotations to add to each sequence
    */
   protected void addReferenceAnnotations_actionPerformed(
-          List<AlignmentAnnotation> anns)
+          Map<SequenceI, List<AlignmentAnnotation>> candidates)
   {
-    for (AlignmentAnnotation ann : anns)
+    for (SequenceI seq : candidates.keySet())
     {
-      // todo: copy, add, adjust...
+      for (AlignmentAnnotation ann : candidates.get(seq))
+      {
+        AlignmentAnnotation copyAnn = new AlignmentAnnotation(ann);
+        int startRes = 0;
+        int endRes = ann.annotations.length;
+        final SequenceGroup selectionGroup = this.ap.av.getSelectionGroup();
+        if (selectionGroup != null)
+        {
+          startRes = selectionGroup.getStartRes();
+          endRes = selectionGroup.getEndRes();
+        }
+        copyAnn.restrict(startRes, endRes);
+
+        // add to the sequence (sets correct copyAnn.datasetSequence)
+        seq.addAlignmentAnnotation(copyAnn);
+        // adjust for gaps
+        copyAnn.adjustForAlignment();
+        // add to the alignment and set visible
+        this.ap.getAlignment().addAnnotation(copyAnn);
+        copyAnn.visible = true;
+      }
     }
+    refresh();
   }
 
   protected void sequenceSelectionDetails_actionPerformed()
index f073ce3..afb0dc1 100755 (executable)
@@ -21,6 +21,7 @@
 package jalview.jbgui;
 
 import jalview.bin.Cache;
+import jalview.gui.JvSwingUtils;
 import jalview.schemes.ColourSchemeProperty;
 import jalview.util.MessageManager;
 
@@ -1210,7 +1211,8 @@ public class GAlignFrame extends JInternalFrame
     findMenuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(
             java.awt.event.KeyEvent.VK_F, Toolkit.getDefaultToolkit()
                     .getMenuShortcutKeyMask(), false));
-    findMenuItem.setToolTipText(MessageManager.getString("label.find_tip"));
+    findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
+            MessageManager.getString("label.find_tip")));
     findMenuItem.addActionListener(new java.awt.event.ActionListener()
     {
       @Override