Package cx.fbn.nevernote.gui

Source Code of cx.fbn.nevernote.gui.TagLineCompleter

/*
* This file is part of NixNote
* Copyright 2009 Randy Baumgarte
*
* This file may be licensed under the terms of of the
* GNU General Public License Version 2 (the ``GPL'').
*
* Software distributed under the License is distributed
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the GPL for the specific language
* governing rights and limitations.
*
* You should have received a copy of the GPL along with this
* program. If not, go to http://www.gnu.org/licenses/gpl.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
package cx.fbn.nevernote.gui;

import java.util.ArrayList;
import java.util.List;

import com.evernote.edam.type.Tag;
import com.trolltech.qt.core.Qt.CaseSensitivity;
import com.trolltech.qt.gui.QCompleter;
import com.trolltech.qt.gui.QStringListModel;

public class TagLineCompleter extends QCompleter {
  private List<Tag>       tags;
  private List<String>     currentTags;
  private QStringListModel   model; 
  private final TagLineEdit      editor;
  private String        currentText;
 
  public TagLineCompleter(TagLineEdit e) {
    editor = e;
    setWidget(editor);
//    editor.setCompleter(this);
    currentTags = new ArrayList<String>();
    setTagList(new ArrayList<Tag>());
    setCaseSensitivity(CaseSensitivity.CaseInsensitive);
  }
 
  public List<String> getTagList(){
    return currentTags;
  }
 
  public void update(List<String> t, String prefix) {
    currentTags = t;
    buildModelList();
       
    setCompletionPrefix(prefix);
    if (!prefix.trim().equals(""))
      complete();
  }
 
  public List<Tag> getTags() {
    return tags;
  }
 
  private List<String> buildModelList() {
   
    model = (QStringListModel) model();
    if (model == null) {
      model = new QStringListModel();
      setModel(model);
    }
    for (int i=0; i<model.rowCount(); i++)
      model.removeRow(i);
   
    List<String> newTagList = new ArrayList<String>();

    for (int i=0; i<tags.size(); i++) {
      boolean found=false;
      for (int j=0; j<currentTags.size() && !found; j++) {
        if (currentTags.get(j).trim().equalsIgnoreCase(tags.get(i).getName())) {
          found = true;
        }
      }
      if (!found)
        newTagList.add(tags.get(i).getName());
    }
   
    model.setStringList(newTagList);
    return newTagList;
  }
 
  public void setTagList(List<Tag> t) {
    tags = t;
    resetList();
    buildModelList();
//    model = new QStringListModel(buildModelList(), this);
//    setModel(model);
  }
 
  public void resetList() {
    currentTags.clear();
  }
 

  public String currentText() {
    return currentText;
  }
 
  public void reset() {
    currentText = "";
  }

}
TOP

Related Classes of cx.fbn.nevernote.gui.TagLineCompleter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.