private void typeDeletion(String name) {
    BibtexEntryType type = BibtexEntryType.getType(name);

    if (type instanceof CustomEntryType) {
      if (BibtexEntryType.getStandardType(name) == null) {
        int reply =
            JOptionPane.showConfirmDialog(
                frame,
                Globals.lang(
                    "All entries of this " + "type will be declared " + "typeless. Continue?"),
                Globals.lang("Delete custom format") + " '" + StringUtil.nCase(name) + '\'',
                JOptionPane.YES_NO_OPTION,
                JOptionPane.WARNING_MESSAGE);
        if (reply != JOptionPane.YES_OPTION) {
          return;
        }
      }
      BibtexEntryType.removeType(name);
      updateTypesForEntries(StringUtil.nCase(name));
      changed.remove(name);
      reqLists.remove(name);
      optLists.remove(name);
      if (biblatexMode) {
        opt2Lists.remove(name);
      }
    }
    // messageLabel.setText("'"+type.getName()+"' "+
    //        Globals.lang("is a standard type."));

  }
Exemple #2
0
 private static BibtexEntry getTestEntry() {
   if (PreviewPrefsTab.entry != null) {
     return PreviewPrefsTab.entry;
   }
   PreviewPrefsTab.entry = new BibtexEntry(IdGenerator.next(), BibtexEntryType.getType("article"));
   PreviewPrefsTab.entry.setField(BibtexFields.KEY_FIELD, "conceicao1997");
   PreviewPrefsTab.entry.setField(
       "author",
       "Luis E. C. Conceic{\\~a}o and Terje van der Meeren and Johan A. J. Verreth and M S. Evjen and D. F. Houlihan and H. J. Fyhn");
   PreviewPrefsTab.entry.setField(
       "title",
       "Amino acid metabolism and protein turnover in larval turbot (Scophthalmus maximus) fed natural zooplankton or Artemia");
   PreviewPrefsTab.entry.setField("year", "1997");
   PreviewPrefsTab.entry.setField("journal", "Marine Biology");
   PreviewPrefsTab.entry.setField("month", "January");
   PreviewPrefsTab.entry.setField("number", "2");
   PreviewPrefsTab.entry.setField("volume", "123");
   PreviewPrefsTab.entry.setField("pdf", "conceicao1997.pdf");
   PreviewPrefsTab.entry.setField("pages", "255--265");
   PreviewPrefsTab.entry.setField(
       "keywords", "energetics, artemia, metabolism, amino acid, turbot");
   PreviewPrefsTab.entry.setField(
       "url", "http://ejournals.ebsco.com/direct.asp?ArticleID=TYY4NT82XA9H7R8PFPPV");
   PreviewPrefsTab.entry.setField(
       "abstract",
       "Abstract The present paper studied the influence of different food regimes "
           + "on the free amino acid (FAA) pool, the rate of protein turnover, the flux of amino acids, and "
           + "their relation to growth of larval turbot (Scophthalmus maximus L.) from first feeding until "
           + "metamorphosis. The amino acid profile of protein was stable during the larval period although "
           + "some small, but significant, differences were found. Turbot larvae had proteins which were rich "
           + "in leucine and aspartate, and poor in glutamate, suggesting a high leucine requirement. The "
           + "profile of the FAA pool was highly variable and quite different from the amino acid profile in "
           + "protein. The proportion of essential FAA decreased with development. High contents of free tyrosine "
           + "and phenylalanine were found on Day 3, while free taurine was present at high levels throughout "
           + "the experimental period. Larval growth rates were positively correlated with taurine levels, "
           + "suggesting a dietary dependency for taurine and/or sulphur amino acids.\n\nReduced growth rates in "
           + "Artemia-fed larvae were associated with lower levels of free methionine, indicating that this diet "
           + "is deficient in methionine for turbot larvae. Leucine might also be limiting turbot growth as the "
           + "different diet organisms had lower levels of this amino acid in the free pool than was found in the "
           + "larval protein. A previously presented model was used to describe the flux of amino acids in growing "
           + "turbot larvae. The FAA pool was found to be small and variable. It was estimated that the daily dietary "
           + "amino acid intake might be up to ten times the larval FAA pool. In addition, protein synthesis and "
           + "protein degradation might daily remove and return, respectively, the equivalent of up to 20 and 10 "
           + "times the size of the FAA pool. In an early phase (Day 11) high growth rates were associated with a "
           + "relatively low protein turnover, while at a later stage (Day 17), a much higher turnover was observed.");
   return PreviewPrefsTab.entry;
 }
  private void applyChanges() {
    valueChanged(new ListSelectionEvent(new JList(), 0, 0, false));
    // Iterate over our map of required fields, and list those types if necessary:

    List<String> types = typeComp.getFields();
    for (Map.Entry<String, List<String>> stringListEntry : reqLists.entrySet()) {
      if (!types.contains(stringListEntry.getKey())) {
        continue;
      }

      List<String> reqFields = stringListEntry.getValue();
      List<String> optFields = optLists.get(stringListEntry.getKey());
      List<String> opt2Fields = opt2Lists.get(stringListEntry.getKey());
      String[] reqStr = new String[reqFields.size()];
      reqStr = reqFields.toArray(reqStr);
      String[] optStr = new String[optFields.size()];
      optStr = optFields.toArray(optStr);
      String[] opt2Str;
      if (opt2Fields != null) {
        opt2Str = opt2Fields.toArray(new String[opt2Fields.size()]);
      } else {
        opt2Str = new String[0];
      }

      // If this type is already existing, check if any changes have
      // been made
      boolean changesMade = true;

      if (defaulted.contains(stringListEntry.getKey())) {
        // This type should be reverted to its default setup.
        // System.out.println("Defaulting: "+typeName);
        String nm = StringUtil.nCase(stringListEntry.getKey());
        BibtexEntryType.removeType(nm);

        updateTypesForEntries(nm);
        continue;
      }

      BibtexEntryType oldType = BibtexEntryType.getType(stringListEntry.getKey());
      if (oldType != null) {
        String[] oldReq = oldType.getRequiredFields(), oldOpt = oldType.getOptionalFields();
        if (biblatexMode) {
          String[] priOpt = oldType.getPrimaryOptionalFields();
          String[] secOpt = Util.getRemainder(oldOpt, priOpt);
          if (equalArrays(oldReq, reqStr)
              && equalArrays(oldOpt, optStr)
              && equalArrays(secOpt, opt2Str)) {
            changesMade = false;
          }
        } else if (equalArrays(oldReq, reqStr) && equalArrays(oldOpt, optStr)) {
          changesMade = false;
        }
      }

      if (changesMade) {
        // System.out.println("Updating: "+typeName);
        CustomEntryType typ =
            biblatexMode
                ? new CustomEntryType(
                    StringUtil.nCase(stringListEntry.getKey()), reqStr, optStr, opt2Str)
                : new CustomEntryType(StringUtil.nCase(stringListEntry.getKey()), reqStr, optStr);

        BibtexEntryType.ALL_TYPES.put(stringListEntry.getKey().toLowerCase(), typ);
        updateTypesForEntries(typ.getName());
      }
    }

    Set<Object> toRemove = new HashSet<Object>();
    for (String o : BibtexEntryType.ALL_TYPES.keySet()) {
      if (!types.contains(o)) {
        toRemove.add(o);
      }
    }

    // Remove those that should be removed:
    if (!toRemove.isEmpty()) {
      for (Object aToRemove : toRemove) {
        typeDeletion((String) aToRemove);
      }
    }

    updateTables();
  }
  @Override
  public void valueChanged(ListSelectionEvent e) {
    if (e.getValueIsAdjusting()) {
      return;
    }

    if (lastSelected != null) {
      // The entry type lastSelected is now unselected, so we store the current settings
      // for that type in our two maps.
      reqLists.put(lastSelected, reqComp.getFields());
      optLists.put(lastSelected, optComp.getFields());
      if (biblatexMode) {
        opt2Lists.put(lastSelected, optComp2.getFields());
      }
    }

    String s = typeComp.getFirstSelected();
    if (s == null) {
      return;
    }
    List<String> rl = reqLists.get(s);
    if (rl == null) {
      BibtexEntryType type = BibtexEntryType.getType(s);
      if (type != null) {
        String[] rf = type.getRequiredFieldsForCustomization(), of = type.getOptionalFields();
        List<String> req, opt;
        if (rf != null) {
          req = java.util.Arrays.asList(rf);
        } else {
          req = new ArrayList<String>();
        }

        if (!biblatexMode) {
          if (of != null) {
            opt = java.util.Arrays.asList(of);
          } else {
            opt = new ArrayList<String>();
          }
        } else {
          String[] priOf = type.getPrimaryOptionalFields();
          if (priOf != null) {
            opt = java.util.Arrays.asList(priOf);
          } else {
            opt = new ArrayList<String>();
          }
          List<String> opt2 = new ArrayList<String>();
          if (of != null) {
            for (String anOf : of) {
              if (!opt.contains(anOf)) {
                opt2.add(anOf);
              }
            }
          }
          optComp2.setFields(opt2);
          optComp2.setEnabled(true);
        }

        reqComp.setFields(req);
        reqComp.setEnabled(true);
        optComp.setFields(opt);
        optComp.setEnabled(true);
      } else {
        // New entry, veintle
        reqComp.setFields(new ArrayList<String>());
        reqComp.setEnabled(true);
        optComp.setFields(new ArrayList<String>());
        optComp.setEnabled(true);
        if (biblatexMode) {
          optComp2.setFields(new ArrayList<String>());
          optComp2.setEnabled(true);
        }
        new FocusRequester(reqComp);
      }
    } else {
      reqComp.setFields(rl);
      optComp.setFields(optLists.get(s));
      if (biblatexMode) {
        optComp2.setFields(opt2Lists.get(s));
      }
    }

    lastSelected = s;
    typeComp.enable(s, changed.contains(lastSelected) && !defaulted.contains(lastSelected));
  }
Exemple #5
0
 /** Remove all types from the menu. Then cycle through all available types, and add them. */
 private void populateTypeMenu() {
   typeMenu.removeAll();
   for (String key : BibtexEntryType.getAllTypes()) {
     typeMenu.add(new ChangeTypeAction(BibtexEntryType.getType(key), panel));
   }
 }