android-openrat

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 3d2f0ab0e5bfe191ac819490265fbb8c5d05f11c
parent 6574f5989f065ceb50696c12f7dcf6d6074ca297
Author: dankert <devnull@localhost>
Date:   Wed, 26 Oct 2011 00:32:05 +0200

Einfaches Verändern von Text.

Diffstat:
res/layout/editor.xml | 23++++++++++++++++++-----
res/layout/properties.xml | 4++--
res/values/strings.xml | 2++
src/de/openrat/android/blog/EditorActivity.java | 78+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
src/de/openrat/android/blog/PageElementsActivity.java | 18+++++++++++-------
src/de/openrat/client/OpenRatClient.java | 22++++++++++++----------
6 files changed, 122 insertions(+), 25 deletions(-)

diff --git a/res/layout/editor.xml b/res/layout/editor.xml @@ -1,6 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="wrap_content" - android:layout_height="wrap_content"> -</LinearLayout> +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" android:layout_height="wrap_content"> + <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" android:layout_height="wrap_content" + android:orientation="vertical"> + + android:layout_width="wrap_content" + android:layout_height="wrap_content"> + <EditText android:id="@+id/text" android:layout_width="wrap_content" + android:layout_height="wrap_content"> + </EditText> + + <Button android:id="@+id/save" android:text="@string/save" + android:layout_width="wrap_content" android:layout_height="wrap_content" /> + + </LinearLayout> +</ScrollView>+ \ No newline at end of file diff --git a/res/layout/properties.xml b/res/layout/properties.xml @@ -6,10 +6,10 @@ <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> - <TableRow> + <TableRow android:layout_width="fill_parent"> <TextView android:text="@string/name" android:layout_width="wrap_content" android:layout_height="wrap_content" /> - <EditText android:id="@+id/name" android:layout_width="wrap_content" + <EditText android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </TableRow> <TableRow> diff --git a/res/values/strings.xml b/res/values/strings.xml @@ -33,6 +33,7 @@ <string name="waitingforlogin">Anmeldung am Server</string> <string name="waitingfordelete">Löschen</string> <string name="waitingfornew">Erzeuge</string> + <string name="waitingforsave">Speichern</string> <string name="language">Sprache</string> <string name="model">Variante</string> <string name="new1">Neu</string> @@ -75,4 +76,5 @@ <string name="timeout_desc">Timeout der TCP/IP-Verbindung in Sekunden</string> <string name="databaseid">Datenbank-Id</string> <string name="databaseid_desc">Datenbank-Id aus der Server-Konfiguration</string> + <string name="saved">Gespeichert</string> </resources> diff --git a/src/de/openrat/android/blog/EditorActivity.java b/src/de/openrat/android/blog/EditorActivity.java @@ -1,15 +1,91 @@ package de.openrat.android.blog; +import java.io.IOException; +import java.util.Map; + import android.app.Activity; import android.os.Bundle; +import android.text.Editable; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; +import de.openrat.android.blog.util.OpenRatClientAsyncTask; +import de.openrat.client.OpenRatClient; public class EditorActivity extends Activity { + public final static String ELEMENTID = "elementid"; + public final static String OBJECTID = "objectid"; + // public final static String TYPE = "type"; + public static final String CLIENT = "client"; + private OpenRatClient client; + private String objectid; + private String elementid; + private String type; + private Map<String, String> properties; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.editor); + this.client = (OpenRatClient) getIntent().getSerializableExtra(CLIENT); + this.objectid = getIntent().getStringExtra(OBJECTID); + this.elementid = getIntent().getStringExtra(ELEMENTID); + + new OpenRatClientAsyncTask(this, R.string.waitingforcontent) + { + + @Override + protected void callServer() throws IOException + { + properties = client.getValue(objectid, elementid); + type = properties.get("type"); + } + + protected void doOnSuccess() + { + if (type.equals("longtext")) + { + setContentView(R.layout.editor); + final EditText view = (EditText) findViewById(R.id.text); + view.setText(properties.get("text")); + + Button button = (Button) findViewById(R.id.save); + button.setOnClickListener(new OnClickListener() + { + + @Override + public void onClick(View v) + { + final String text = view.getEditableText() + .toString(); + new OpenRatClientAsyncTask(EditorActivity.this, + R.string.waitingforsave) + { + + @Override + protected void callServer() throws IOException + { + client.setValue(objectid, elementid, + "longtext", text); + } + + protected void doOnSuccess() + { + Toast.makeText(EditorActivity.this, + R.string.saved, Toast.LENGTH_SHORT); + EditorActivity.this.finish(); + }; + }.execute(); + + } + + }); + } + } + }.execute(); } } diff --git a/src/de/openrat/android/blog/PageElementsActivity.java b/src/de/openrat/android/blog/PageElementsActivity.java @@ -9,11 +9,11 @@ import java.util.Arrays; import java.util.Map; import android.app.ListActivity; +import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; -import android.widget.SimpleAdapter; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import de.openrat.android.blog.adapter.SimpleNameAdapter; @@ -54,14 +54,14 @@ public class PageElementsActivity extends ListActivity protected void doOnSuccess() { - SimpleNameAdapter adapter = new SimpleNameAdapter(PageElementsActivity.this, - new ArrayList<String>(data.values())); + SimpleNameAdapter adapter = new SimpleNameAdapter( + PageElementsActivity.this, new ArrayList<String>(data + .values())); setListAdapter(adapter); - }; + } }.execute(); - ListView list = getListView(); list.setOnItemClickListener(new OnItemClickListener() { @@ -72,9 +72,13 @@ public class PageElementsActivity extends ListActivity { String elementid = Arrays.asList( data.keySet().toArray(new String[] {})).get(position); - Toast.makeText(PageElementsActivity.this, elementid+": "+data.get(elementid), - Toast.LENGTH_SHORT); + Intent intent = new Intent(PageElementsActivity.this, + EditorActivity.class); + intent.putExtra(EditorActivity.ELEMENTID, elementid); + intent.putExtra(EditorActivity.OBJECTID, objectid); + intent.putExtra(EditorActivity.CLIENT, client); + startActivity(intent); } }); diff --git a/src/de/openrat/client/OpenRatClient.java b/src/de/openrat/client/OpenRatClient.java @@ -9,8 +9,6 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.StringTokenizer; -import java.util.regex.Pattern; import org.json.JSONArray; import org.json.JSONException; @@ -86,7 +84,7 @@ public class OpenRatClient extends CMSRequest String folderurl = json.getJSONArray("zeilen").getJSONObject(1) .getString("url"); String[] urlParts = folderurl.split("[^0-9]+"); - String folderid = urlParts[urlParts.length-1]; + String folderid = urlParts[urlParts.length - 1]; return folderid; } catch (JSONException e) @@ -101,7 +99,8 @@ public class OpenRatClient extends CMSRequest * * @return */ - public String getValue(String pageid, String elementid) throws IOException + public Map<String, String> getValue(String pageid, String elementid) + throws IOException { clearParameters(); setAction("pageelement"); @@ -113,8 +112,11 @@ public class OpenRatClient extends CMSRequest try { - String value = json.getString("value"); - return value; + final Map<String, String> properties = new HashMap<String, String>(); + + properties.put("type", json.getString("type")); + properties.put("text", json.optString("text")); + return properties; } catch (JSONException e) { @@ -128,15 +130,15 @@ public class OpenRatClient extends CMSRequest * * @return */ - public void setValue(String pageid, String elementid, String value) - throws IOException + public void setValue(String pageid, String elementid, String type, + String value) throws IOException { clearParameters(); setAction("pageelement"); setActionMethod("save"); setId(pageid); setParameter("elementid", elementid); - setParameter("value", value); + setParameter("text", value); setMethod("POST"); readJSON(); @@ -446,7 +448,7 @@ public class OpenRatClient extends CMSRequest super.setAction("index"); super.setActionMethod("project"); super.setParameter("id", projectid); - //super.setMethod("POST"); + // super.setMethod("POST"); readJSON(); }