Sunday, March 20, 2011

Cube Field The Game Wide Screen

Applet Manage your Blogger blogs

Manage your blogs Blogger

Today we will see another application using GOOGLE API, this time the Blogger API. You will see your posts, post an entry, delete an entry, make a comment, etc.

You can view all posts you manage and blog entries by.

Images






Code


Master Class



Classes package;


import javax.swing.JFrame;


public class Main {


public static void main (String [] args) {
FrameConexion FrameConexion fc = new ();
fc.setVisible (true);
fc.setBounds (0 , 0, 300, 120);
fc.setLocationRelativeTo (null);
fc.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}}



Class FrameConexion



Classes package;


import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.*;


import com.google.gdata.client.blogger.BloggerService;
import com.google.gdata.util.AuthenticationException;


public class FrameConexion extends JFrame {

JTextField txtusuario;
JPasswordField txtclave;

public FrameConexion(){

ImageIcon imgframe=new ImageIcon(this.getClass().getResource("../Imagenes/blogger.png"));
setIconImage(imgframe.getImage());
JPanel pdatos=new JPanel();
pdatos.setLayout(new GridLayout(2,2,1,1));
pdatos.add(new JLabel("Usuario:"));
txtusuario = new JTextField (20);
pdatos.add (txtusuario)
pdatos.add (new JLabel ("ContraseƱa :"));
txtclave = new JPasswordField (20 )
pdatos.add (txtclave)

pbotones = new JPanel JPanel ();
btnconectar = new JButton JButton ("Connect");
btnconectar.addActionListener (new ActionListener () {


@ Override
public void actionPerformed (ActionEvent arg0) {
BloggerService BloggerService service = new ("Customer Blogger - Java Zone");
try {
servicio.setUserCredentials (txtusuario.getText (), new String (txtclave.getPassword ()));
FrameBlogs fb = new FrameBlogs (service, txtusuario.getText ());
fb.setVisible (true);
fb.setBounds (0, 0, 550, 400);
fb.setLocationRelativeTo (null);
fb.setDefaultCloseOperation (EXIT_ON_CLOSE)
FrameConexion.this.setVisible (false);
} catch (AuthenticationException e) {
/ / TODO Auto-generated catch block
e.printStackTrace ();

}}
});
pbotones.add (btnconectar) ;
add (pdata);
add (pbotones, BorderLayout.SOUTH);
}}




Class FrameBlogs



package classes;


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java. net.MalformedURLException;
import java.net.URL;


import javax.swing .*; javax.swing.event.ListSelectionEvent
import, import
javax.swing.event.ListSelectionListener;


com.google.gdata.client.blogger import. BloggerService;
import com.google.gdata.data.Entry; com.google.gdata.data.Feed
import, import
com.google.gdata.data.ParseSource;
import com. google.gdata.util.ServiceException;


FrameBlogs public class extends JFrame {

BloggerService service;
nombreBlogs String []
idblogs String []
JSplitPane panelSeparador;
listaBlogs JList;
panelPorBlog JPanel [];
JButton btncrear, btneliminar, btncomentar, btnactualizar;
String user;
Entry [] entries;
int option;

public FrameBlogs (s BloggerService , String usu) {

servicio = s;
User = usu;
= new ImageIcon imgframe ImageIcon (this.getClass (). GetResource ("../ Imagenes / blogger.png "));
setIconImage (imgframe.getImage ());
panelSeparador = new JSplitPane ();

obtenerBlogs ();

pblogs JPanel = new JPanel ();
listaBlogs = new JList(nombreBlogs);
listaBlogs.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
listaBlogs.addListSelectionListener(new ListSelectionListener(){


@Override
public void valueChanged(ListSelectionEvent e) {
opcion=listaBlogs.getSelectedIndex();
if(listaBlogs.getSelectedIndex()==0){
try {
crearPanelPorBlog(0);
} catch (IOException e1) {
/ / TODO Auto-generated catch block
e1.printStackTrace ();
} catch (ServiceException e1) {
/ / TODO Auto-generated catch block
e1.printStackTrace ();
}
panelSeparador.setRightComponent (new JScrollPane (panelPorBlog [0]));
} else {


Try {
crearPanelPorBlog (1);
} catch (IOException e1) {
/ / TODO Auto-generated catch block
e1.printStackTrace ();
} catch (ServiceException e1) {
/ / TODO Auto-generated catch block
e1.printStackTrace ();
}
panelSeparador.setRightComponent ( new JScrollPane (panelPorBlog [1]));
}
}

});
pblogs.add (listaBlogs);

panelSeparador.setLeftComponent ( pblogs);
panelSeparador.setRightComponent (new JPanel ());

add (panelSeparador);

JPanel = new JPanel pacciones () ;
ImageIcon imgcrear = new ImageIcon (this.getClass (). GetResource ("../ Images / postear.png "));
btncrear = new JButton (" Post ", imgcrear)
btncrear.addActionListener (new ActionListener () {


@ Override
public void actionPerformed (ActionEvent e) {
FramePublicar FramePublicar fp = new (service, user, idblogs [
listaBlogs.getSelectedIndex ()]);}
});
= new ImageIcon imgeliminar ImageIcon (this.getClass (). GetResource ("../ Imagenes / borrar.png "));
btneliminar = new JButton (" Delete ", imgeliminar);
btneliminar.addActionListener (new ActionListener () {


@ Override
public void actionPerformed (ActionEvent e) {
FrameEliminar fe = new FrameEliminar (entries);
}
});
imgcomentar = new ImageIcon ImageIcon (this.getClass (). GetResource ("../ Images / comentar.png "));
btncomentar = new JButton (" Comment "imgcomentar)
btncomentar.addActionListener (new ActionListener () {


@ Override
public void actionPerformed (ActionEvent e) {
FrameComentario fc = new FrameComentario (service, tickets, idblogs [
listaBlogs.getSelectedIndex ()]);}
});
ImageIcon imgactualizar=new ImageIcon(this.getClass().getResource("../Imagenes/actualizar.png"));
btnactualizar=new JButton("Actualizar",imgactualizar);
btnactualizar.addActionListener(new ActionListener(){


@Override
public void actionPerformed(ActionEvent e) {
try {
crearPanelPorBlog(opcion);
} catch (IOException e1) {
/ / TODO Auto-generated catch block
e1.printStackTrace ();
} catch (ServiceException e1) {
/ / TODO Auto-generated
catch block e1.printStackTrace ();
}
panelSeparador.setRightComponent (new JScrollPane (panelPorBlog [1]));

}} )

pacciones.add(btncrear);
pacciones.add(btneliminar);
pacciones.add(btncomentar);
pacciones.add(btnactualizar);

add(pacciones,BorderLayout.SOUTH);
}

public void obtenerBlogs(){
URL feedUrl;
try {
feedUrl = new URL("http://www.blogger.com/feeds/default/blogs");
Feed feed = servicio.getFeed(feedUrl, Feed.class);
nombreBlogs=new String[feed.getEntries().size()];
idblogs=new String[feed.getEntries().size()];
for (int i = 0; i  <  feed.getEntries().size(); i++) {
     Entry entry = feed.getEntries().get(i);
     nombreBlogs[i]=entry.getTitle().getPlainText();
}

if (feed.getEntries (). Size ()> 0) {
for (int j = 0, j \u0026lt; feed . GetEntries (). size (); j + +) {
feed.getEntries Entry entry = (). get (j);
idblogs [j] = entry.getId (). split (" blog-") [1];

}} else {
JOptionPane.showMessageDialog (null," User not registered Blog no. ");
}
} catch (MalformedURLException e) {
e.printStackTrace ();
} catch (IOException e) {
e.printStackTrace ();
} catch (ServiceException e) {
e.printStackTrace ();

}}

crearPanelPorBlog public void (int op) throws IOException, ServiceException{
panelPorBlog=new JPanel[nombreBlogs.length];
for(int i=0;i < nombreBlogs.length;i++){
JPanel p=new JPanel();
panelPorBlog[i]=p;
p.setLayout(new BoxLayout(p,BoxLayout.Y_AXIS));


String dirfeed="http://www.blogger.com/feeds/"+idblogs[op];
String urlfeed=dirfeed+"/posts/default";
URL feedUrl = new URL(urlfeed);
   Feed resultFeed = servicio.getFeed(feedUrl, Feed.class);
   entradas=new Entry[resultFeed.getEntries().size()];
   for (int j = 0; j  <  resultFeed.getEntries().size(); j++) {
     Entry entrada = resultFeed.getEntries().get(j);
  entries [j] = entry;
ppost JPanel = new JPanel ();
lpost = new JLabel JLabel (entrada.getTitle (). getPlainText ());
ppost.add (lpost);
p.add (ppost);
;}

}
}}



Class FramePublicar



package classes;


import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net. URL;


import javax.swing .*;


com.google.gdata.client.blogger.BloggerService import, import
com.google.gdata.data.Entry;
import com.google.gdata.data.Person;
import com. google.gdata.data.PlainTextConstruct;
import com.google.gdata.util.ServiceException;


FramePublicar public class extends JFrame {

JTextArea txt;
JScrollPane scroll;
btnpublicar JButton;
BloggerService service;
String usuario;
JTextField txttitulo;
String idblog;

public FramePublicar(BloggerService s, String usu,String id){

servicio=s;
usuario=usu;
idblog=id;

ImageIcon imgframe=new ImageIcon(this.getClass().getResource("../Imagenes/blogger.png"));
setIconImage(imgframe.getImage());

JPanel ptitulo=new JPanel();
txttitulo=new JTextField(30);
ptitulo.add(new JLabel("Titulo:"));
ptitulo.add(txttitulo);

add(ptitulo,BorderLayout.NORTH);

txt=new JTextArea();
scroll=new JScrollPane(txt);
add (scroll);

pboton JPanel = new JPanel ();
btnpublicar = new JButton ("Post");
btnpublicar.addActionListener (new ActionListener () {


@ Override
public void actionPerformed (ActionEvent e) {
Entry entry = new Entry ();
entrada.setTitle (new PlainTextConstruct (txttitulo.getText ()));
   entrada.setContent(new PlainTextConstruct(txt.getText()));
   Person author = new Person(usuario, null, usuario);
   entrada.getAuthors().add(author);
   entrada.setDraft(false);


   try {
URL UrlEntrada = new URL("http://www.blogger.com/feeds/"+idblog + "/posts/default");
servicio.insert (UrlEntrada, input);
JOptionPane.showMessageDialog (null, "Input Published Successfully.");
txttitulo.setText
(""); txt.setText ("");
FramePublicar.this.dispose ();
} catch (MalformedURLException e1) {
/ / TODO Auto-generated catch block
e1.printStackTrace ();
} catch (IOException ex) {
/ / TODO Auto-generated catch block
ex.printStackTrace ();
} catch (ServiceException ed) {
/ / TODO Auto-generated
catch block ed.printStackTrace ();

}}

});
pboton.add (btnpublicar)
add (pboton, BorderLayout.SOUTH)
setVisible (true);
setBounds (0, 0, 400, 300);
setLocationRelativeTo (null);
}}


Class FrameEliminar

Classes package;

import java.awt.event.ActionEvent;
import java.awt.event. ActionListener;
import java.io.IOException;

import javax.swing .*;

com.google.gdata.data.Entry import, import
com.google.gdata.util.ServiceException;

FrameEliminar public class extends JFrame {
comboEntradas JComboBox;
btneliminar JButton;
Entry [] entries;
String [] names;
public FrameEliminar(Entry[] e){
entradas=e;
ImageIcon imgframe=new ImageIcon(this.getClass().getResource("../Imagenes/blogger.png"));
setIconImage(imgframe.getImage());
nombres=new String[entradas.length];
for(int i = 0; i \u0026lt; entradas.length; i + +) {
names [i] = entries [i]. getTitle (). getPlainText ();
} comboEntradas = new JComboBox (names);
pdata = new JPanel JPanel ();
pdatos.add (new JLabel ("Input:")) ;
pdatos.add (comboEntradas)
btneliminar = new JButton ("Delete");
btneliminar.addActionListener (new ActionListener () {

@ Override
public void actionPerformed (ActionEvent e) {
try {
entries [comboEntradas.getSelectedIndex ()]. \u200b\u200bdelete ();
JOptionPane.showMessageDialog (null, 'Deleted Entry Exit ");
} catch (IOException e1) {
/ / TODO Auto-generated catch block
e1.printStackTrace ();
} catch (ServiceException e1) {
/ / TODO Auto-generated catch block
e1.printStackTrace ();
}
}
});
pdatos.add (btneliminar)
add (pdata);
setVisible (true);
setBounds (0, 0, 400, 200);
setLocationRelativeTo (null);
}}

Class FrameComentar

Classes package;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.*;

import com.google.gdata.client.blogger.BloggerService;
import com.google.gdata.data.Entry;
import com.google.gdata.data.PlainTextConstruct;
Import com.google.gdata.util.ServiceException;

FrameComentario public class extends JFrame {
Entry [] entries;
String [] names;
comboEntradas JComboBox;
JTextArea txtComentarios;
btncomentar JButton;
BloggerService service;
idblog String;
public FrameComentario(BloggerService s,Entry[] e,String id){
servicio=s;
entradas=e;
idblog=id;
ImageIcon imgframe=new ImageIcon(this.getClass().getResource("../Imagenes/blogger.png"));
setIconImage(imgframe.getImage());
names = new String [entradas.length]
for (int i = 0; i \u0026lt; entradas.length; i + +) {
names [ i] = entries [i]. getTitle (). getPlainText ();
}
comboEntradas = new JComboBox (names);
JPanel Pentra = new JPanel ();
pentrada.add (new JLabel ("Input:"));
pentrada.add (comboEntradas)
add (Pentre, BorderLayout.NORTH)
txtComentarios = new JTextArea ();
add (new JScrollPane (txtComentarios));
pcomentar JPanel = new JPanel ();
imgcomentar = new ImageIcon ImageIcon (this.getClass (). getResource ("../ Images / comentar.png "));
btncomentar = new JButton (" Comment "imgcomentar)
btncomentar.addActionListener(new ActionListener(){

@Override
public void actionPerformed(ActionEvent e) {
String selfLinkHref = entradas[comboEntradas.getSelectedIndex()].getSelfLink().getHref();
   String[] tokens = selfLinkHref.split("/");
   String postId = tokens[tokens.length - 1];
   
   String commentsFeedUri = "http://www.blogger.com/feeds/"+idblog + "/" + postId + "/comments/default";
   URL feedUrl;
try {
feedUrl = new URL(commentsFeedUri);
Entry myEntry = new Entry();
   myEntry.setContent(new PlainTextConstruct(txtcomentario.getText()));
servicio.insert (feedURL, myEntry)
} catch (MalformedURLException e1) {
/ / TODO Auto-generated catch block
e1. printStackTrace ();
} catch (IOException s) {
/ / TODO Auto-generated catch block
es.printStackTrace ();
} catch (ServiceException ea) {
/ / TODO Auto-generated catch block
ea.printStackTrace ();
}
}
});
pcomentar.add (btncomentar)
add (pcomentar, BorderLayout.SOUTH)
setVisible (true);
setBounds (0, 0, 400, 300);
setLocationRelativeTo (null);
}}

Main class creates an object only FrameConexion and displays. FrameConexion then creates a BloggerService for communication with the Blogger service. Then the user has to authenticate, that the method SetUserCredentials (String user, String password) BloggerService class. Then we call the FrameBlogs where we show the blogs that manages the user and the inputs of each blog. Also in this window are the buttons to publish, remove, comment and update.

If you press the publish button FramePublicar calls will indicate where the title of the post and its contents. Then press publish and ready. If you press the delete button a window where JComboBox to get a list of entries, you should select the entry and press the delete button. Pressing comment will appear a window where you choose the entry in which you want to comment on and finally write the comments and click on the comment button.

And finally the Update button it does is update the blog entries you have currently open.

0 comments:

Post a Comment