alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

/*
 * OptionGroup.java - Option pane group
 * :tabSize=8:indentSize=8: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.*;
import org.gjt.sp.util.Log;

/**
 * A set of option panes shown in one branch in the options dialog.

* * Plugins should not create instances of this class anymore. See * {@link EditPlugin} for information on how jEdit obtains and constructs * option pane instances. * * @author Mike Dillon * @version $Id: OptionGroup.java,v 1.10 2003/06/27 20:02:05 spestov Exp $ */ public class OptionGroup { //{{{ OptionGroup constructor /** * Creates an option group. * @param name The internal name of the option group, used to key a * property options.name.label 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(); } //}}} //{{{ 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(); 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 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 private String name; private String label; private Vector members; private boolean sort; //{{{ 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.compareTo(label) < 0) { members.insertElementAt(newObj,i); return; } } } members.addElement(newObj); } //}}} //}}} }

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.