Skip to content

Commit

Permalink
Merge pull request #3033 from krowley/timob-10458
Browse files Browse the repository at this point in the history
[TIMOB-10458] Android: TableSection - header views are not sorted correc...
  • Loading branch information
Opie Cyrus committed Oct 4, 2012
2 parents 60762a0 + d4a3373 commit 98503ac
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@

import ti.modules.titanium.ui.TableViewProxy;
import ti.modules.titanium.ui.TableViewRowProxy;
import ti.modules.titanium.ui.widget.TiUILabel;
import ti.modules.titanium.ui.widget.TiView;
import ti.modules.titanium.ui.widget.searchbar.TiUISearchBar.OnSearchChangeListener;
import ti.modules.titanium.ui.widget.tableview.TableViewModel.Item;
import android.graphics.Color;
Expand Down Expand Up @@ -202,10 +204,9 @@ public View getView(int position, View convertView, ViewGroup parent) {
if (v == null) {
if (item.className.equals(TableViewProxy.CLASSNAME_HEADERVIEW)) {
TiViewProxy vproxy = item.proxy;
View headerView = layoutHeaderOrFooter(vproxy);
TiUIView headerView = layoutHeaderOrFooter(vproxy);
v = new TiTableViewHeaderItem(proxy.getActivity(), headerView);
v.setClassName(TableViewProxy.CLASSNAME_HEADERVIEW);
return v;
} else if (item.className.equals(TableViewProxy.CLASSNAME_HEADER)) {
v = new TiTableViewHeaderItem(proxy.getActivity());
v.setClassName(TableViewProxy.CLASSNAME_HEADER);
Expand Down Expand Up @@ -331,11 +332,11 @@ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCoun
adapter = new TTVListAdapter(viewModel);
if (proxy.hasProperty(TiC.PROPERTY_HEADER_VIEW)) {
TiViewProxy view = (TiViewProxy) proxy.getProperty(TiC.PROPERTY_HEADER_VIEW);
listView.addHeaderView(layoutHeaderOrFooter(view), null, false);
listView.addHeaderView(layoutHeaderOrFooter(view).getNativeView(), null, false);
}
if (proxy.hasProperty(TiC.PROPERTY_FOOTER_VIEW)) {
TiViewProxy view = (TiViewProxy) proxy.getProperty(TiC.PROPERTY_FOOTER_VIEW);
listView.addFooterView(layoutHeaderOrFooter(view), null, false);
listView.addFooterView(layoutHeaderOrFooter(view).getNativeView(), null, false);
}

listView.setAdapter(adapter);
Expand Down Expand Up @@ -441,7 +442,7 @@ protected boolean rowClicked(TiBaseTableViewItem rowView, int position, boolean
}
}

private View layoutHeaderOrFooter(TiViewProxy viewProxy)
private TiUIView layoutHeaderOrFooter(TiViewProxy viewProxy)
{
TiUIView tiView = viewProxy.getOrCreateView();
View nativeView = tiView.getNativeView();
Expand All @@ -465,7 +466,7 @@ private View layoutHeaderOrFooter(TiViewProxy viewProxy)
}
AbsListView.LayoutParams p = new AbsListView.LayoutParams(width, height);
nativeView.setLayoutParams(p);
return nativeView;
return tiView;
}

public void dataSetChanged() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,25 @@
*/
package ti.modules.titanium.ui.widget.tableview;


import org.appcelerator.titanium.TiContext;
import org.appcelerator.titanium.proxy.TiViewProxy;
import org.appcelerator.titanium.util.TiUIHelper;
import org.appcelerator.titanium.view.TiUIView;

import ti.modules.titanium.ui.widget.tableview.TableViewModel.Item;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Handler;
import android.view.Gravity;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class TiTableViewHeaderItem extends TiBaseTableViewItem
{
private RowView rowView;
private View headerView;
private TiUIView headerView;
private boolean isHeaderView = false;

class RowView extends RelativeLayout
Expand Down Expand Up @@ -75,11 +77,11 @@ public TiTableViewHeaderItem(Activity activity) {
setMinimumHeight((int)TiUIHelper.getRawDIPSize(18, activity));
}

public TiTableViewHeaderItem(Activity activity, View headerView) {
public TiTableViewHeaderItem(Activity activity, TiUIView headerView) {
super(activity);

this.handler = new Handler(this);
this.addView(headerView, headerView.getLayoutParams());
this.addView(headerView.getNativeView(), headerView.getLayoutParams());
this.setLayoutParams(headerView.getLayoutParams());
setMinimumHeight((int)TiUIHelper.getRawDIPSize(18, activity));
this.headerView = headerView;
Expand All @@ -89,10 +91,30 @@ public TiTableViewHeaderItem(TiContext tiContext, Activity activity)
{
this(activity);
}

public void setRowData(Item item) {
if (!isHeaderView) {
rowView.setRowData(item);
}
else
{
setHeaderData(item);
}
}

private void setHeaderData(Item item)
{
if (headerView != null && headerView.getChildren() != null && headerView.getChildren().size() > 0 &&
item != null && item.proxy != null && item.proxy.getChildren() != null &&
item.proxy.getChildren().length > 0) {
TiUIView labelView = headerView.getChildren().get(0);
TiViewProxy labelProxy = item.proxy.getChildren()[0];
if (labelView != null && labelProxy != null)
{
labelView.processProperties(labelProxy.getProperties());
}

}
}

public Item getRowData() {
Expand All @@ -113,7 +135,7 @@ protected void onLayout(boolean changed, int left, int top, int right, int botto
if (!isHeaderView) {
rowView.layout(left, 0, right, bottom - top);
} else {
headerView.layout(left, 0, right, bottom - top);
headerView.getNativeView().layout(left, 0, right, bottom - top);
}
}
}

0 comments on commit 98503ac

Please sign in to comment.