Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: OptionGroup.java   Sprache: JAVA

Original von: Isabelle©

/*
 * OptionGroup.java - Option pane group
 * :tabSize=4:indentSize=4:noTabs=false:
 * :folding=explicit:collapseFolds=1:
 *
 * Copyright (C) 2000 mike dillon
 * Portions copyright (C) 2003 Slava Pestov
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */


package org.gjt.sp.jedit;

import java.util.*;

/**
 * A set of option panes shown in one branch in the options dialog.<p>
 *
 * Plugins should not create instances of this class directly. See
 * {@link EditPlugin} for information on how jEdit obtains and constructs
 * option pane instances.
 *
 * @author Mike Dillon
 * @version $Id: OptionGroup.java 21831 2012-06-18 22:54:17Z ezust $
 */

public class OptionGroup
{
 
 // {{{ data members
 protected final String name;
 protected final String label;
 protected final Vector<Object> members;
 private boolean sort;
 // }}}
 
 //{{{ OptionGroup constructor
 /**
 * Creates an option group.
 * @param name The internal name of the option group, used to key a
 * property <code>options.<i>name</i>.label</code> which is the
 * label displayed in the options dialog.
 * @see jEdit#getProperty(String)
 */

 public OptionGroup(String name)
 {
  this.name = name;
  label = jEdit.getProperty("options." + name + ".label");
  members = new Vector<Object>();
 } //}}}

 //{{{ OptionGroup constructor
 /**
 * Creates an option group.
 * @param label The label
 * @param options A whitespace-separated list of option pane names
 * @since jEdit 4.2pre2
 */

 public OptionGroup(String name, String label, String options)
 {
  this.name = name;
  this.label = label;
  members = new Vector<Object>();

  StringTokenizer st = new StringTokenizer(options);
  while(st.hasMoreTokens())
  {
   String pane = st.nextToken();
   addOptionPane(pane);
  }
 } //}}}

 //{{{ getName() method
 public String getName()
 {
  return name;
 } //}}}

 //{{{ getLabel() method
 /**
 * Returns the option group's human-readable label.
 * @since jEdit 4.2pre1
 */

 public String getLabel()
 {
  return label;
 } //}}}

 //{{{ addOptionGroup() method
 public void addOptionGroup(OptionGroup group)
 {
  insertionSort(group.getLabel(),group);
 } //}}}

 //{{{ addOptionPane() method
 public void addOptionPane(OptionPane pane)
 {
  String label = jEdit.getProperty("options."
   + pane.getName() + ".label","NO LABEL PROPERTY: "
   + pane.getName());

  insertionSort(label,pane);
 } //}}}

 //{{{ addOptionPane() method
 public void addOptionPane(String pane)
 {
  String label = jEdit.getProperty("options."
   + pane + ".label","NO LABEL PROPERTY: "
   + pane);

  insertionSort(label,pane);
 } //}}}

 //{{{ getMembers() method
 public Enumeration<Object> getMembers()
 {
  return members.elements();
 } //}}}

 //{{{ getMember() method
 public Object getMember(int index)
 {
  return (index >= 0 && index < members.size())
   ? members.elementAt(index) : null;
 } //}}}

 //{{{ getMemberIndex() method
 public int getMemberIndex(Object member)
 {
  return members.indexOf(member);
 } //}}}

 //{{{ getMemberCount() method
 public int getMemberCount()
 {
  return members.size();
 } //}}}

 //{{{ setSort() method
 /**
 * Sets if the members of this group should be sorted.
 * @since jEdit 4.2pre3
 */

 public void setSort(boolean sort)
 {
  this.sort = sort;
 } //}}}

 //{{{ Private members


 //{{{ insertionSort() method
 private void insertionSort(String newLabel, Object newObj)
 {
  if(sort)
  {
   for(int i = 0; i < members.size(); i++)
   {
    Object obj = members.elementAt(i);
    String label;
    if(obj instanceof OptionPane)
    {
     String name = ((OptionPane)obj).getName();
     label = jEdit.getProperty("options."
      + name + ".label","NO LABEL PROPERTY: "
      + name);
    }
    else if(obj instanceof String)
    {
     label = jEdit.getProperty("options."
      + obj + ".label","NO LABEL PROPERTY: "
      + obj);
    }
    else if(obj instanceof OptionGroup)
     label = ((OptionGroup)obj).getLabel();
    else
     throw new InternalError();

    if(newLabel.compareToIgnoreCase(label) < 0)
    {
     members.insertElementAt(newObj,i);
     return;
    }
   }
  }

  members.addElement(newObj);
 } //}}}

 //}}}
}

¤ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

in der Quellcodebibliothek suchen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff



                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik