1 package org
.netxms
.ui
.android
.main
.fragments
;
3 import java
.lang
.reflect
.Method
;
5 import org
.netxms
.ui
.android
.R
;
6 import org
.netxms
.ui
.android
.main
.activities
.ConsolePreferences
;
7 import org
.netxms
.ui
.android
.main
.activities
.HomeScreen
;
8 import org
.netxms
.ui
.android
.service
.ClientConnectorService
;
10 import android
.app
.Activity
;
11 import android
.content
.Intent
;
12 import android
.os
.Bundle
;
13 import android
.support
.v4
.app
.ListFragment
;
14 import android
.view
.MenuItem
;
15 import android
.view
.View
;
16 import android
.view
.animation
.AnimationUtils
;
17 import android
.widget
.ListView
;
18 import android
.widget
.TextView
;
21 * Abstract base class for all fragments in the client.
22 * Implements functionality for passing common parameters and
23 * for handling common tasks.
25 * @author Marco Incalcaterra (marco.incalcaterra@thinksoft.it)
29 public abstract class AbstractListFragment
extends ListFragment
31 protected ClientConnectorService service
= null;
32 protected long nodeId
;
33 private View progressContainer
;
34 private View listContainer
;
35 private TextView standardEmptyView
;
36 protected boolean listShown
;
37 protected static Method method_invalidateOptionsMenu
;
43 method_invalidateOptionsMenu
= Activity
.class.getMethod("invalidateOptionsMenu", new Class
[0]);
45 catch (NoSuchMethodException e
)
47 method_invalidateOptionsMenu
= null;
52 public void onCreate(Bundle savedInstanceState
)
54 super.onCreate(savedInstanceState
);
55 setRetainInstance(true);
56 setHasOptionsMenu(true);
60 public boolean onContextItemSelected(MenuItem item
)
62 if (defaultMenuAction(item
))
64 return super.onContextItemSelected(item
);
68 public boolean onOptionsItemSelected(MenuItem item
)
70 if (defaultMenuAction(item
))
72 return super.onOptionsItemSelected(item
);
76 public void setListShown(boolean shown
)
78 setListShown(shown
, true);
82 public void setListShownNoAnimation(boolean shown
)
84 setListShown(shown
, false);
87 public void setNodeId(long id
)
92 public void setService(ClientConnectorService service
)
94 this.service
= service
;
97 public abstract void refresh();
99 public void setListShown(boolean shown
, boolean animate
)
101 if (listShown
!= shown
)
108 progressContainer
.startAnimation(AnimationUtils
.loadAnimation(getActivity(), android
.R
.anim
.fade_out
));
109 listContainer
.startAnimation(AnimationUtils
.loadAnimation(getActivity(), android
.R
.anim
.fade_in
));
111 progressContainer
.setVisibility(View
.GONE
);
112 listContainer
.setVisibility(View
.VISIBLE
);
118 progressContainer
.startAnimation(AnimationUtils
.loadAnimation(getActivity(), android
.R
.anim
.fade_in
));
119 listContainer
.startAnimation(AnimationUtils
.loadAnimation(getActivity(), android
.R
.anim
.fade_out
));
121 progressContainer
.setVisibility(View
.VISIBLE
);
122 listContainer
.setVisibility(View
.INVISIBLE
);
127 protected void createProgress(View v
)
129 int INTERNAL_EMPTY_ID
= 0x00ff0001;
130 listContainer
= v
.findViewById(R
.id
.listContainer
);
131 progressContainer
= v
.findViewById(R
.id
.progressContainer
);
132 standardEmptyView
= (TextView
)v
.findViewById(INTERNAL_EMPTY_ID
);
133 if (standardEmptyView
!= null)
134 ((ListView
)v
).setEmptyView(standardEmptyView
);
139 private boolean defaultMenuAction(MenuItem item
)
141 switch (item
.getItemId())
143 case android
.R
.id
.home
:
144 startActivity(new Intent(getActivity(), HomeScreen
.class));
147 startActivity(new Intent(getActivity(), ConsolePreferences
.class));