Skip to content

Commit

Permalink
Put common functionality in a superclass
Browse files Browse the repository at this point in the history
  • Loading branch information
pilhuhn committed Jun 20, 2012
1 parent acbe057 commit aae640c
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 63 deletions.
60 changes: 60 additions & 0 deletions src/org/rhq/pocket/operation/AbstractOperationActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package org.rhq.pocket.operation;

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.view.MenuItem;
import android.widget.Toast;

import org.codehaus.jackson.JsonNode;

import org.rhq.pocket.FinishCallback;
import org.rhq.pocket.R;
import org.rhq.pocket.RHQActivity;
import org.rhq.pocket.TalkToServerTask;

/**
* Base class for the operation activities
* @author Heiko W. Rupp
*/
public abstract class AbstractOperationActivity extends RHQActivity {

public void deleteCurrent(String historyId) {
new TalkToServerTask(this,new FinishCallback() {
@Override
public void onSuccess(JsonNode result) {
Toast.makeText(getApplicationContext(), getString(R.string.SuccessfullyDeleted), Toast.LENGTH_SHORT).show();
refresh(null);

enableMenuItem(R.id.trash_this, false);

}

@Override
public void onFailure(Exception e) {
Toast.makeText(getApplicationContext(),getString(R.string.DeleteFailed) + e.getLocalizedMessage(),Toast.LENGTH_LONG).show();
}
},"/operation/history/" + historyId,"DELETE").execute();
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==R.id.trash_this) {

FragmentManager fm = getFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.detail_container);
if (fragment!=null && fragment instanceof OperationHistoryDetailFragment) {
String historyId = ((OperationHistoryDetailFragment)fragment).getHistoryId();
deleteCurrent(historyId);
// remove the details fragment
FragmentTransaction ft = fm.beginTransaction();
ft.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.remove(fragment);
ft.commit();

}
return true;
}
return super.onOptionsItemSelected(item);
}
}
17 changes: 1 addition & 16 deletions src/org/rhq/pocket/operation/OperationActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* Activity to deal with operation scheduling
* @author Heiko W. Rupp
*/
public class OperationActivity extends RHQActivity {
public class OperationActivity extends AbstractOperationActivity {
private int resourceId=-1;

public void onCreate(Bundle savedInstanceState) {
Expand Down Expand Up @@ -56,21 +56,6 @@ public boolean onCreateOptionsMenu(Menu menu) {
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==R.id.trash_this) {

FragmentManager fm = getFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.detail_container);
if (fragment!=null && fragment instanceof OperationHistoryDetailFragment) {
((OperationHistoryDetailFragment)fragment).deleteCurrent();
}
return true;
}
return super.onOptionsItemSelected(item);
}


@Override
public void refresh(View v) {
FragmentManager fm = getFragmentManager();
Expand Down
18 changes: 1 addition & 17 deletions src/org/rhq/pocket/operation/OperationHistoryActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,16 @@
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.FrameLayout;

import org.rhq.pocket.R;
import org.rhq.pocket.RHQActivity;

/**
* Activity to display operation histories and to handle them
* @author Heiko W. Rupp
*/
public class OperationHistoryActivity extends RHQActivity {
public class OperationHistoryActivity extends AbstractOperationActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Expand Down Expand Up @@ -51,20 +49,6 @@ public boolean onCreateOptionsMenu(Menu menu) {
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId()==R.id.trash_this) {

FragmentManager fm = getFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.detail_container);
if (fragment!=null && fragment instanceof OperationHistoryDetailFragment) {
((OperationHistoryDetailFragment)fragment).deleteCurrent();
}

return true;
}
return super.onOptionsItemSelected(item);
}

@Override
public void refresh(View v) {
Expand Down
34 changes: 4 additions & 30 deletions src/org/rhq/pocket/operation/OperationHistoryDetailFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
import java.util.Map;

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.text.Html;
import android.view.LayoutInflater;
Expand Down Expand Up @@ -45,6 +43,10 @@ public void setHistoryId(String id) {
this.historyId = id;
}

public String getHistoryId() {
return historyId;
}

@Override
public void onResume() {
super.onResume();
Expand Down Expand Up @@ -109,32 +111,4 @@ public void setHistory(OperationHistoryRest history) {
historyId = history.getJobId();
}

public void deleteCurrent() {
new TalkToServerTask(getActivity(),new FinishCallback() {
@Override
public void onSuccess(JsonNode result) {
RHQActivity activity = (RHQActivity) getActivity();
Toast.makeText(activity,getString(R.string.SuccessfullyDeleted),Toast.LENGTH_SHORT).show();
if (activity instanceof OperationHistoryActivity) {
activity.refresh(null);
}
activity.enableMenuItem(R.id.trash_this,false);

// remove the details fragment
FragmentManager fm = getFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.detail_container);
if (fragment!=null) {
FragmentTransaction ft = fm.beginTransaction();
ft.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.remove(fragment);
ft.commit();
}
}

@Override
public void onFailure(Exception e) {
Toast.makeText(getActivity(),getString(R.string.DeleteFailed) + e.getLocalizedMessage(),Toast.LENGTH_LONG).show();
}
},"/operation/history/" + historyId,"DELETE").execute();
}
}

0 comments on commit aae640c

Please sign in to comment.