Package cx.fbn.nevernote.dialog

Source Code of cx.fbn.nevernote.dialog.PublishNotebook

/*
* 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.dialog;

//**********************************************
//**********************************************
//* Publish (make public) a notebook.
//**********************************************
//**********************************************

import com.evernote.edam.type.NoteSortOrder;
import com.evernote.edam.type.Notebook;
import com.evernote.edam.type.Publishing;
import com.trolltech.qt.core.Qt;
import com.trolltech.qt.gui.QComboBox;
import com.trolltech.qt.gui.QDialog;
import com.trolltech.qt.gui.QHBoxLayout;
import com.trolltech.qt.gui.QIcon;
import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QLineEdit;
import com.trolltech.qt.gui.QPushButton;
import com.trolltech.qt.gui.QTextEdit;
import com.trolltech.qt.gui.QVBoxLayout;

public class PublishNotebook extends QDialog {
  private final QPushButton    okButton;
  private final QPushButton    cancelButton;
  private boolean          okClicked;
  private final QLabel      urlLabel;
  private final QLineEdit      url;   
  private final String iconPath = new String("classpath:cx/fbn/nevernote/icons/");
  private final QTextEdit      description;
  private final QComboBox      sortedBy;
  private final QComboBox      sortOrder;
  private boolean stopButtonPressed = false;
  private final QPushButton stopButton;
 
  public PublishNotebook(String userid, String url, Notebook n) {
    setWindowIcon(new QIcon(iconPath+"globe.png"));
    okClicked = false;

   
    okButton = new QPushButton();
    okButton.setText(tr("OK"));
    okButton.pressed.connect(this, "onClicked()");
   
    userid = "sysrabt";
   
    urlLabel = new QLabel("http://"+url +tr("/pub/") +userid + tr("/"));
    QHBoxLayout urlLayout = new QHBoxLayout();
    urlLayout.addWidget(urlLabel);
    this.url = new QLineEdit();
    this.url.textChanged.connect(this, "urlEdited()");
    urlLayout.addWidget(this.url);
   
    QVBoxLayout textEditLayout = new QVBoxLayout();
    textEditLayout.addWidget(new QLabel(tr("Notebook: ") +n.getName()));
    textEditLayout.addWidget(new QLabel(tr("Public URL")));
    textEditLayout.addLayout(urlLayout);
    textEditLayout.addWidget(new QLabel(tr("Description")));
    description = new QTextEdit();
    textEditLayout.addWidget(description);
   
    sortedBy = new QComboBox(this);
    sortOrder = new QComboBox(this);
    QHBoxLayout orderLayout = new QHBoxLayout();
    orderLayout.addWidget(new QLabel(tr("Sort By")));
    Qt.Alignment right = new Qt.Alignment();
    right.set(Qt.AlignmentFlag.AlignRight);
    orderLayout.setAlignment(right);
    orderLayout.addWidget(sortedBy);
    orderLayout.addSpacing(50);
    orderLayout.addWidget(new QLabel(tr("Sort Order")));
    orderLayout.addWidget(sortOrder);
   
    sortedBy.addItem(tr("Date Created"), NoteSortOrder.CREATED);
    sortedBy.addItem(tr("Date Updated"), NoteSortOrder.UPDATED);
   
    sortOrder.addItem(tr("Newest to oldest"), false);
    sortOrder.addItem(tr("Oldest to newest"), true);
   
    textEditLayout.addLayout(orderLayout);
   
    cancelButton = new QPushButton();
    cancelButton.setText(tr("Cancel"));
    cancelButton.pressed.connect(this, "onCancel()");
   
    stopButton = new QPushButton(tr("Stop Sharing"));
    stopButton.setVisible(false);
    stopButton.clicked.connect(this, "stopPublishing()");
   
    QHBoxLayout buttonLayout = new QHBoxLayout();
    buttonLayout.addStretch(1);
    buttonLayout.addWidget(stopButton);
    buttonLayout.addWidget(okButton);
    buttonLayout.addWidget(cancelButton);
    setWindowTitle(tr("Share A Notebook With The World"))
   
    QVBoxLayout mainLayout = new QVBoxLayout();
    mainLayout.addLayout(textEditLayout);
    mainLayout.addSpacing(1);
    mainLayout.addLayout(buttonLayout);
    setLayout(mainLayout);

    if (n.isPublished()) {
      Publishing p = n.getPublishing();
      this.url.setText(p.getUri());
      description.setText(p.getPublicDescription());
      int position = sortOrder.findData(p.isAscending());
      sortOrder.setCurrentIndex(position);
      position = sortedBy.findData(p.getOrder());
      sortedBy.setCurrentIndex(position);
      okButton.setText(tr("Save Changes"));
      stopButton.setVisible(true);
    } else {
      okButton.setEnabled(false);
    }
   
    resize(500, 200);
   
  }
 
  @SuppressWarnings("unused")
  private void onClicked() {
    okClicked = true;
    stopButtonPressed = false;
    close();
  }
 
  @SuppressWarnings("unused")
  private void onCancel() {
    okClicked = false;
    close();
  }
 
  public boolean okClicked() {
    return okClicked;
  }
 
  @SuppressWarnings("unused")
  private void itemSelected() {
    okButton.setEnabled(true);
  }
 
  @SuppressWarnings("unused")
  private void urlEdited() {
    if (url.text().trim().equals(""))
      okButton.setEnabled(false);
    else
      okButton.setEnabled(true);
  }
 
  @SuppressWarnings("unused")
  private void stopPublishing() {
    stopButtonPressed = true;
    okClicked = true;
    close();
  }
 
  public boolean isStopPressed() {
    return stopButtonPressed;
  }
 
  public Publishing getPublishing() {
    Publishing p = new Publishing();
    p.setPublicDescription(description.toPlainText());
    int i = sortedBy.currentIndex();
    p.setOrder((NoteSortOrder) sortedBy.itemData(i));
    p.setAscending((Boolean)sortOrder.itemData(i));
    p.setUri(url.text());
    return p;
  }
}
TOP

Related Classes of cx.fbn.nevernote.dialog.PublishNotebook

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.