Skip to content

Commit

Permalink
RAL: Document Retreive complete.
Browse files Browse the repository at this point in the history
Rest model --> Xwiki model transformation glitches rectified.
  • Loading branch information
sasinda committed Jul 27, 2012
1 parent c14fc45 commit f803985
Show file tree
Hide file tree
Showing 86 changed files with 1,205 additions and 3,948 deletions.
6 changes: 6 additions & 0 deletions xwiki-android-client/res/layout/blogmain.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,11 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="New Post" />
<Button
android:id="@+id/blg_btn_retreive"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Retreive" />

</LinearLayout>
Expand Down
140 changes: 110 additions & 30 deletions xwiki-android-client/src/org/xwiki/android/client/blog/Blogger.java
Original file line number Diff line number Diff line change
@@ -1,43 +1,123 @@
package org.xwiki.android.client.blog;

import org.xwiki.android.client.R;
import org.xwiki.android.client.R.layout;
import org.xwiki.android.components.login.LoginActivity;
import org.xwiki.android.rest.ral.RaoException;
import org.xwiki.android.rest.reference.DocumentReference;
import org.xwiki.android.svc.blog.BlogDocument;
import org.xwiki.android.svc.xmodel.DocumentRemoteSvcCallbacks;
import org.xwiki.android.svc.xmodel.DocumentSvc;
import org.xwiki.android.svc.xmodel.DocumentSvcImpl;
import org.xwiki.android.xmodel.entity.Document;

import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Blogger extends Activity implements OnClickListener
{

private static final int REQUEST_CODE_EDITPOST = 0;

private Button btn_newpost,btn_retreive;
private EditText etPageName;

private Dialog ret_dialog;
private ProgressDialog progDialog;

private DocumentSvc dsvc;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.blogmain);// show loading screen
// startActivity(new Intent(this,BlogPrefernces.class));
btn_newpost = (Button) findViewById(R.id.btn_newPost);
btn_newpost.setOnClickListener(this);
btn_retreive = (Button) findViewById(R.id.blg_btn_retreive);
btn_retreive.setOnClickListener(this);

dsvc=new DocumentSvcImpl();
}

public void onClick(View v)
{
if (v.getId() == R.id.btn_newPost) {
Intent intent = new Intent(this, EditPostActivity.class);
startActivityForResult(intent, REQUEST_CODE_EDITPOST);
} else if (v.getId() == R.id.blg_btn_retreive) {
showRetreiveDialog();
}

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (requestCode == REQUEST_CODE_EDITPOST) {

}
}

private void retreiveAndLaunchEditDoc()
{

}

private void showRetreiveDialog()
{
ret_dialog = new Dialog(this);
ret_dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
ret_dialog.setTitle("Page to retreive");
LayoutInflater li = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View dialogView = li.inflate(R.layout.blog_retreive_dialog, null);
ret_dialog.setContentView(dialogView);
ret_dialog.show();

Button okBtn = (Button) dialogView.findViewById(R.id.blg_ret_btn_ok);
etPageName = (EditText) dialogView.findViewById(R.id.blg_ret_et_pageName);

public class Blogger extends Activity implements OnClickListener {

private static final int REQUEST_CODE_EDITPOST = 0;


private Button btn_newpost;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blogmain);//show loading screen
//startActivity(new Intent(this,BlogPrefernces.class));
btn_newpost=(Button) findViewById(R.id.btn_newPost);
btn_newpost.setOnClickListener(this);
}

public void onClick(View v) {
if(v.getId()==R.id.btn_newPost){
Intent intent=new Intent(this,EditPostActivity.class);
startActivityForResult(intent, REQUEST_CODE_EDITPOST);
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==REQUEST_CODE_EDITPOST){

}
}

okBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
DocumentReference dref=new DocumentReference("xwiki","Blog",etPageName.getText().toString());
DocumentRemoteSvcCallbacks clbk=new DocumentRemoteSvcCallbacks()
{
@Override
public void onFullyRetreived(Document res, boolean success, RaoException ex)
{
if(success){
ret_dialog.dismiss();
progDialog.dismiss();
Intent i=new Intent(Blogger.this,EditPostActivity.class);
i.putExtra(EditPostActivity.ARG_UPDATE_DOC, res);
startActivity(i);
}else{
progDialog.dismiss();
}

}
};
progDialog=ProgressDialog.show(Blogger.this, "Processing", "Fetching document from server");
dsvc.retreive(dref, clbk);
}
});
}
}
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
package org.xwiki.android.client.blog;

import java.io.Serializable;
import java.util.List;

import org.xwiki.android.blog.svc.BlogDocument;
import org.xwiki.android.svc.blog.BlogDocument;
import org.xwiki.android.xmodel.entity.Document;
import org.xwiki.android.client.R;
import org.xwiki.android.components.login.LoginActivity;
import org.xwiki.android.context.XWikiApplicationContext;
import org.xwiki.android.context.XWikiApplicationContextAPI;
import org.xwiki.android.fileStore.FSDocumentReference;

import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
Expand All @@ -28,8 +24,12 @@

public class EditPostActivity extends Activity implements OnClickListener {

public static final String ARG_UPDATE_DOC="UPDATE_DOC";

private static final int REQUEST_CODE_LOADSAVEDPOSTS=0;

private final String TAG=this.getClass().getSimpleName();

private Button btnSave,btnLoad,btnPost,btnPublish;
private BlogDocument mydoc;
private BlogDocument.BlogDocumentRemoteCallbacks myRmtClbks;
Expand Down Expand Up @@ -57,7 +57,16 @@ protected void onCreate(Bundle savedInstanceState) {

//show dialog to get page name, category

showDialog();
Document d=(Document) getIntent().getSerializableExtra("UPDATE_DOC");
if(d!=null){
mydoc=new BlogDocument(d);
etPost.setText(mydoc.getContent());
Log.d(TAG,mydoc.getContent());
}else{
showDialog();
}





Expand Down Expand Up @@ -104,22 +113,23 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(resultCode==RESULT_OK){
if(requestCode==REQUEST_CODE_LOADSAVEDPOSTS){
XWikiApplicationContextAPI ctx=XWikiApplicationContext.getInstance();
mydoc=(BlogDocument) ctx.pop(LoadSavedPostsActivity.RET_BLOGDOC);
etPost.setText(mydoc.getContent());
}
}

}

public void onClick(View v) {
@Override
public void onClick(View v) {

if (v.getId()==R.id.btnSave) {
mydoc.setContent(etPost.getText().toString());
mydoc.save();

}else if(v.getId()==R.id.btnLoad){
Intent i=new Intent(this,LoadSavedPostsActivity.class);
XWikiApplicationContextAPI ctx=(XWikiApplicationContextAPI) getApplication();
ctx.put("blgDoc", mydoc);
startActivityForResult(i,REQUEST_CODE_LOADSAVEDPOSTS);

}else if(v.getId()==R.id.btnPost){
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,24 @@
package org.xwiki.android.client.blog;

import java.util.List;
import java.util.Map;
import java.util.Set;




import org.xwiki.android.blog.svc.BlogDocument;
import org.xwiki.android.blog.svc.BlogDocument.BlogDocumentLocalCallbacks;
import org.xwiki.android.context.XWikiApplicationContext;
import org.xwiki.android.context.XWikiApplicationContextAPI;
import org.xwiki.android.fileStore.FSDocumentReference;
import org.xwiki.android.xmodel.svc.DocumentSvc;
import org.xwiki.android.xmodel.svc.DocumentSvcImpl;
import org.xwiki.android.svc.blog.BlogDocument;

import org.xwiki.android.svc.xmodel.DocumentLocalSvcCallbacks;
import org.xwiki.android.svc.xmodel.DocumentLocalSvcs;
import org.xwiki.android.svc.xmodel.DocumentSvc;
import org.xwiki.android.svc.xmodel.DocumentSvcImpl;
import org.xwiki.android.xmodel.blog.XBlogPost;
import org.xwiki.android.xmodel.entity.Document;


import android.app.ListActivity;
import android.app.ProgressDialog;
Expand All @@ -17,13 +27,15 @@
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class LoadSavedPostsActivity extends ListActivity
{
private LoadSavedPostsActivity activityCtx;

private BlogDocumentLocalCallbacks clbk;

private BlogDocument doc;
public class LoadSavedPostsActivity extends ListActivity
{
public static final String RET_BLOGDOC="RET_VALUE_DOC";

private DocumentLocalSvcCallbacks clbk;

private BlogDocument rsltDoc;

private List<FSDocumentReference> refList;

Expand All @@ -34,29 +46,28 @@ protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
DocumentSvc svc = new DocumentSvcImpl();
activityCtx = this;
XWikiApplicationContextAPI ctx=(XWikiApplicationContext)getApplicationContext();
doc = (BlogDocument) ctx.pop("blgDoc");
init();
doc.listBlogDocuments(clbk);

svc.listBySpace("Blog", clbk);
// svc.listByTag("SavedBlogPost",clbk);

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
FSDocumentReference fsref = refList.get(position);
myProgressDialog = ProgressDialog.show(this, "loading", "Please wait...", true);
doc.load(fsref, clbk);
DocumentLocalSvcs svc=new DocumentSvcImpl();
svc.load(fsref, clbk);
}

private void init()
{
clbk = doc.new BlogDocumentLocalCallbacks()
clbk = new DocumentLocalSvcCallbacks()
{

@Override
public void onListingComplete(List<FSDocumentReference> rslts)
public void onListingComplete(List<FSDocumentReference> rslts, Map<String, Object> matchedby)
{
refList = rslts;
String[] list = new String[rslts.size()];
Expand All @@ -66,18 +77,23 @@ public void onListingComplete(List<FSDocumentReference> rslts)
}

ArrayAdapter<String> adapter =
new ArrayAdapter<String>(activityCtx, android.R.layout.simple_list_item_1, list);
new ArrayAdapter<String>(LoadSavedPostsActivity.this, android.R.layout.simple_list_item_1, list);
setListAdapter(adapter);
}

@Override
public void onBlogPostLoaded()
public void onLoadComplete(Document entity)
{
myProgressDialog.dismiss();
setResult(RESULT_OK);
rsltDoc=new BlogDocument(entity);
XWikiApplicationContextAPI ctx=XWikiApplicationContext.getInstance();
ctx.put(RET_BLOGDOC, rsltDoc);
finish();
}
};

}
}


Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
import org.xwiki.android.context.XWikiApplicationContext;
import org.xwiki.android.dal.EntityManager;

import org.xwiki.android.ral.RESTfulManager;
import org.xwiki.android.ral.XmlRESTFulManager;

import org.xwiki.android.xmodel.entity.Document;
import com.j256.ormlite.dao.Dao;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@
import java.util.ArrayList;
import java.util.List;

import org.xwiki.android.cmnSvc.LoginFacade;

import org.xwiki.android.components.IntentExtra;
import org.xwiki.android.components.R;
import org.xwiki.android.dal.EntityManager;
import org.xwiki.android.rest.HttpConnector;
import org.xwiki.android.svc.cmn.LoginFacade;
import org.xwiki.android.entity.*;

import com.j256.ormlite.dao.Dao;
Expand Down
Loading

0 comments on commit f803985

Please sign in to comment.