+ /**\r
+ * generate a features file for seqs with colours from visible (if any)\r
+ * \r
+ * @param seqs\r
+ * source of features\r
+ * @param visible\r
+ * hash of Colours for each feature type\r
+ * @param visOnly\r
+ * when true only feature types in 'visible' will be output\r
+ * @return features file contents\r
+ */\r
+ public String printJalviewFormat(SequenceI[] seqs, Hashtable visible,\r
+ boolean visOnly)\r
+ {\r
+ StringBuffer out = new StringBuffer();\r
+ SequenceFeature[] next;\r
+\r
+ if (visOnly && (visible == null || visible.size() < 1))\r
+ {\r
+ return "No Features Visible";\r
+ }\r
+ if (visible != null && visOnly)\r
+ {\r
+ // write feature colours only if we're given them and we are generating\r
+ // viewed features\r
+ Enumeration en = visible.keys();\r
+ String type;\r
+ int color;\r
+ while (en.hasMoreElements())\r
+ {\r
+ type = en.nextElement().toString();\r
+ color = Integer.parseInt(visible.get(type).toString());\r
+ out.append(type\r
+ + "\t"\r
+ + jalview.util.Format\r
+ .getHexString(new java.awt.Color(color)) + "\n");\r
+ }\r
+ }\r
+ // Work out which groups are both present and visible\r
+ Vector groups = new Vector();\r
+ int groupIndex = 0;\r