commit 3d2f0ab0e5bfe191ac819490265fbb8c5d05f11c
parent 6574f5989f065ceb50696c12f7dcf6d6074ca297
Author: dankert <devnull@localhost>
Date: Wed, 26 Oct 2011 00:32:05 +0200
Einfaches Verändern von Text.
Diffstat:
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();
}