git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10382 75d07b2b-3a1a-0410-a2c5-0572b91ccdca3.0
parent
142905654f
commit
9bb4efdeb5
@ -0,0 +1 @@ |
||||
X-Comment: Created with jMonkeyPlatform |
@ -0,0 +1,76 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!-- You may freely edit this file. See commented blocks below for --> |
||||
<!-- some examples of how to customize the build. --> |
||||
<!-- (If you delete it and reopen the project it will be recreated.) --> |
||||
<!-- By default, only the Clean and Build commands use this build script. --> |
||||
<!-- Commands such as Run, Debug, and Test only use this build script if --> |
||||
<!-- the Compile on Save feature is turned off for the project. --> |
||||
<!-- You can turn off the Compile on Save (or Deploy on Save) setting --> |
||||
<!-- in the project's Project Properties dialog box.--> |
||||
<project name="BasicGameTemplate" default="default" basedir="."> |
||||
<description>Builds, tests, and runs the project BasicGameTemplate.</description> |
||||
<import file="nbproject/build-impl.xml"/> |
||||
|
||||
<!-- |
||||
|
||||
There exist several targets which are by default empty and which can be |
||||
used for execution of your tasks. These targets are usually executed |
||||
before and after some main targets. They are: |
||||
|
||||
-pre-init: called before initialization of project properties |
||||
-post-init: called after initialization of project properties |
||||
-pre-compile: called before javac compilation |
||||
-post-compile: called after javac compilation |
||||
-pre-compile-single: called before javac compilation of single file |
||||
-post-compile-single: called after javac compilation of single file |
||||
-pre-compile-test: called before javac compilation of JUnit tests |
||||
-post-compile-test: called after javac compilation of JUnit tests |
||||
-pre-compile-test-single: called before javac compilation of single JUnit test |
||||
-post-compile-test-single: called after javac compilation of single JUunit test |
||||
-pre-jar: called before JAR building |
||||
-post-jar: called after JAR building |
||||
-post-clean: called after cleaning build products |
||||
|
||||
(Targets beginning with '-' are not intended to be called on their own.) |
||||
|
||||
Example of inserting an obfuscator after compilation could look like this: |
||||
|
||||
<target name="-post-compile"> |
||||
<obfuscate> |
||||
<fileset dir="${build.classes.dir}"/> |
||||
</obfuscate> |
||||
</target> |
||||
|
||||
For list of available properties check the imported |
||||
nbproject/build-impl.xml file. |
||||
|
||||
|
||||
Another way to customize the build is by overriding existing main targets. |
||||
The targets of interest are: |
||||
|
||||
-init-macrodef-javac: defines macro for javac compilation |
||||
-init-macrodef-junit: defines macro for junit execution |
||||
-init-macrodef-debug: defines macro for class debugging |
||||
-init-macrodef-java: defines macro for class execution |
||||
-do-jar-with-manifest: JAR building (if you are using a manifest) |
||||
-do-jar-without-manifest: JAR building (if you are not using a manifest) |
||||
run: execution of project |
||||
-javadoc-build: Javadoc generation |
||||
test-report: JUnit report generation |
||||
|
||||
An example of overriding the target for project execution could look like this: |
||||
|
||||
<target name="run" depends="BasicGameTemplate-impl.jar"> |
||||
<exec dir="bin" executable="launcher.exe"> |
||||
<arg file="${dist.jar}"/> |
||||
</exec> |
||||
</target> |
||||
|
||||
Notice that the overridden target depends on the jar target and not only on |
||||
the compile target as the regular run target does. Again, for a list of available |
||||
properties which you can use, check the target you are overriding in the |
||||
nbproject/build-impl.xml file. |
||||
|
||||
--> |
||||
|
||||
</project> |
@ -0,0 +1,22 @@ |
||||
<jnlp spec="1.0+" codebase="${jnlp.codebase}" href="launch.jnlp"> |
||||
<information> |
||||
<title>${APPLICATION.TITLE}</title> |
||||
<vendor>${APPLICATION.VENDOR}</vendor> |
||||
<homepage href="${APPLICATION.HOMEPAGE}"/> |
||||
<description>${APPLICATION.DESC}</description> |
||||
<description kind="short">${APPLICATION.DESC.SHORT}</description> |
||||
<!--${JNLP.ICONS}--> |
||||
<!--${JNLP.OFFLINE.ALLOWED}--> |
||||
</information> |
||||
<!--${JNLP.SECURITY}--> |
||||
<resources> |
||||
<!--${JNLP.RESOURCES.RUNTIME}--> |
||||
<!--${JNLP.RESOURCES.MAIN.JAR}--> |
||||
<!--${JNLP.RESOURCES.JARS}--> |
||||
<jar href='lib/assets.jar'/> |
||||
<!--${JNLP.RESOURCES.EXTENSIONS}--> |
||||
</resources> |
||||
<application-desc main-class="${jnlp.main.class}"> |
||||
<!--${JNLP.APPLICATION.ARGS}--> |
||||
</application-desc> |
||||
</jnlp> |
@ -0,0 +1,15 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.jmonkeyengine.tests"> |
||||
<application android:label="@string/app_name"> |
||||
<activity android:label="@string/app_name" android:name="MainActivity" android:launchMode="singleTask"> |
||||
<intent-filter> |
||||
<action android:name="android.intent.action.MAIN"/> |
||||
<category android:name="android.intent.category.LAUNCHER"/> |
||||
</intent-filter> |
||||
</activity> |
||||
<activity android:label="@string/app_name" android:name="TestsHarness" android:launchMode="singleTask" android:screenOrientation="landscape"> |
||||
</activity> |
||||
</application> |
||||
<uses-sdk android:minSdkVersion="8"/> |
||||
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:smallScreens="true"/> |
||||
</manifest> |
@ -0,0 +1,17 @@ |
||||
# This file is used to override default values used by the Ant build system. |
||||
# |
||||
# This file must be checked into Version Control Systems, as it is |
||||
# integral to the build system of your project. |
||||
|
||||
# This file is only used by the Ant script. |
||||
|
||||
# You can use this to override default values such as |
||||
# 'source.dir' for the location of your java source folder and |
||||
# 'out.dir' for the location of your output folder. |
||||
|
||||
# You can also use it define how the release builds are signed by declaring |
||||
# the following properties: |
||||
# 'key.store' for the location of your keystore and |
||||
# 'key.alias' for the name of the key to use. |
||||
# The password will be asked during the build when you use the 'release' target. |
||||
|
@ -0,0 +1,92 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project name="jMonkeyEngine Test Applications" default="help"> |
||||
|
||||
<!-- The local.properties file is created and updated by the 'android' tool. |
||||
It contains the path to the SDK. It should *NOT* be checked into |
||||
Version Control Systems. --> |
||||
<property file="local.properties" /> |
||||
|
||||
<!-- The ant.properties file can be created by you. It is only edited by the |
||||
'android' tool to add properties to it. |
||||
This is the place to change some Ant specific build properties. |
||||
Here are some properties you may want to change/update: |
||||
|
||||
source.dir |
||||
The name of the source directory. Default is 'src'. |
||||
out.dir |
||||
The name of the output directory. Default is 'bin'. |
||||
|
||||
For other overridable properties, look at the beginning of the rules |
||||
files in the SDK, at tools/ant/build.xml |
||||
|
||||
Properties related to the SDK location or the project target should |
||||
be updated using the 'android' tool with the 'update' action. |
||||
|
||||
This file is an integral part of the build system for your |
||||
application and should be checked into Version Control Systems. |
||||
|
||||
--> |
||||
<property file="ant.properties" /> |
||||
|
||||
<!-- if sdk.dir was not set from one of the property file, then |
||||
get it from the ANDROID_HOME env var. |
||||
This must be done before we load project.properties since |
||||
the proguard config can use sdk.dir --> |
||||
<property environment="env" /> |
||||
<condition property="sdk.dir" value="${env.ANDROID_HOME}"> |
||||
<isset property="env.ANDROID_HOME" /> |
||||
</condition> |
||||
|
||||
<!-- The project.properties file is created and updated by the 'android' |
||||
tool, as well as ADT. |
||||
|
||||
This contains project specific properties such as project target, and library |
||||
dependencies. Lower level build properties are stored in ant.properties |
||||
(or in .classpath for Eclipse projects). |
||||
|
||||
This file is an integral part of the build system for your |
||||
application and should be checked into Version Control Systems. --> |
||||
<loadproperties srcFile="project.properties" /> |
||||
|
||||
<!-- quick check on sdk.dir --> |
||||
<fail |
||||
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable." |
||||
unless="sdk.dir" |
||||
/> |
||||
|
||||
<!-- |
||||
Import per project custom build rules if present at the root of the project. |
||||
This is the place to put custom intermediary targets such as: |
||||
-pre-build |
||||
-pre-compile |
||||
-post-compile (This is typically used for code obfuscation. |
||||
Compiled code location: ${out.classes.absolute.dir} |
||||
If this is not done in place, override ${out.dex.input.absolute.dir}) |
||||
-post-package |
||||
-post-build |
||||
-pre-clean |
||||
--> |
||||
<import file="custom_rules.xml" optional="true" /> |
||||
|
||||
<!-- Import the actual build file. |
||||
|
||||
To customize existing targets, there are two options: |
||||
- Customize only one target: |
||||
- copy/paste the target into this file, *before* the |
||||
<import> task. |
||||
- customize it to your needs. |
||||
- Customize the whole content of build.xml |
||||
- copy/paste the content of the rules files (minus the top node) |
||||
into this file, replacing the <import> task. |
||||
- customize to your needs. |
||||
|
||||
*********************** |
||||
****** IMPORTANT ****** |
||||
*********************** |
||||
In all cases you must update the value of version-tag below to read 'custom' instead of an integer, |
||||
in order to avoid having your file be overridden by tools such as "android update project" |
||||
--> |
||||
<!-- version-tag: 1 --> |
||||
<import file="${sdk.dir}/tools/ant/build.xml" /> |
||||
|
||||
</project> |
@ -0,0 +1,20 @@ |
||||
# To enable ProGuard in your project, edit project.properties |
||||
# to define the proguard.config property as described in that file. |
||||
# |
||||
# Add project specific ProGuard rules here. |
||||
# By default, the flags in this file are appended to flags specified |
||||
# in ${sdk.dir}/tools/proguard/proguard-android.txt |
||||
# You can edit the include path and order by changing the ProGuard |
||||
# include property in project.properties. |
||||
# |
||||
# For more details, see |
||||
# http://developer.android.com/guide/developing/tools/proguard.html |
||||
|
||||
# Add any project specific keep options here: |
||||
|
||||
# If your project uses WebView with JS, uncomment the following |
||||
# and specify the fully qualified class name to the JavaScript interface |
||||
# class: |
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { |
||||
# public *; |
||||
#} |
@ -0,0 +1,14 @@ |
||||
# This file is automatically generated by Android Tools. |
||||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED! |
||||
# |
||||
# This file must be checked in Version Control Systems. |
||||
# |
||||
# To customize properties used by the Ant build system edit |
||||
# "ant.properties", and override values to adapt the script to your |
||||
# project structure. |
||||
# |
||||
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): |
||||
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt |
||||
|
||||
# Project target. |
||||
target=android-8 |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 108 KiB |
After Width: | Height: | Size: 134 B |
After Width: | Height: | Size: 124 B |
@ -0,0 +1,13 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:orientation="vertical" |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="fill_parent" |
||||
> |
||||
<TextView |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="wrap_content" |
||||
android:text="Hello World, MainActivity" |
||||
/> |
||||
</LinearLayout> |
||||
|
@ -0,0 +1,119 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:id="@+id/layoutTestChooser" |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="fill_parent" |
||||
android:background="#FFFFFF" |
||||
> |
||||
|
||||
<TextView |
||||
android:id="@+id/lblTitle" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:layout_alignParentLeft="true" |
||||
android:layout_alignParentTop="true" |
||||
android:layout_marginTop="10dp" |
||||
android:layout_marginLeft="10dp" |
||||
android:layout_marginRight="10dp" |
||||
android:text="Choose a demo to start:" |
||||
android:textSize="20sp" |
||||
android:textColor="#000000" |
||||
/> |
||||
|
||||
<LinearLayout |
||||
android:id="@+id/layoutFilter" |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="wrap_content" |
||||
android:layout_below="@id/lblTitle" |
||||
android:layout_marginBottom="10dp" |
||||
android:layout_marginTop="10dp" |
||||
android:layout_marginLeft="10dp" |
||||
android:layout_marginRight="10dp" |
||||
android:orientation="horizontal" |
||||
> |
||||
|
||||
<TextView |
||||
android:id="@+id/lblFindTitle" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="wrap_content" |
||||
android:layout_marginRight="10dp" |
||||
android:text="Find:" |
||||
android:textSize="20sp" |
||||
android:textColor="#000000" |
||||
/> |
||||
|
||||
<EditText |
||||
android:id="@+id/txtFilter" |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="wrap_content" |
||||
android:layout_weight="1" |
||||
android:ems="10" |
||||
android:hint="Enter a Filter" |
||||
android:inputType="text" |
||||
android:textSize="20sp" |
||||
android:textColor="#000000" |
||||
/> |
||||
|
||||
</LinearLayout> |
||||
|
||||
<LinearLayout |
||||
android:id="@+id/layoutButtons" |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="wrap_content" |
||||
android:layout_alignParentBottom="true" |
||||
android:gravity="center" |
||||
android:layout_marginTop="20dp" |
||||
android:focusable="true" |
||||
android:focusableInTouchMode="true" |
||||
> |
||||
|
||||
<Button |
||||
android:id="@+id/btnOK" |
||||
android:layout_width="100dp" |
||||
android:layout_height="wrap_content" |
||||
android:text="OK" |
||||
android:layout_marginRight="20dp" |
||||
android:textSize="20sp" |
||||
android:textColor="#000000" |
||||
/> |
||||
|
||||
<Button |
||||
android:id="@+id/btnCancel" |
||||
android:layout_width="100dp" |
||||
android:layout_height="wrap_content" |
||||
android:text="Cancel" |
||||
android:layout_marginLeft="20dp" |
||||
android:textSize="20sp" |
||||
android:textColor="#000000" |
||||
/> |
||||
<requestFocus/> |
||||
|
||||
</LinearLayout> |
||||
|
||||
<LinearLayout |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="wrap_content" |
||||
android:layout_above="@id/layoutButtons" |
||||
android:layout_below="@id/layoutFilter" |
||||
android:gravity="center" |
||||
android:background="@drawable/selected" |
||||
> |
||||
|
||||
<ListView |
||||
android:id="@+id/listClasses" |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="fill_parent" |
||||
android:choiceMode="singleChoice" |
||||
android:listSelector="@drawable/selected" |
||||
android:layout_marginTop="5dp" |
||||
android:layout_marginBottom="5dp" |
||||
android:scrollbars="vertical" |
||||
android:fadeScrollbars="false" |
||||
android:textFilterEnabled="true" |
||||
> |
||||
|
||||
</ListView> |
||||
|
||||
</LinearLayout> |
||||
|
||||
</RelativeLayout> |
@ -0,0 +1,30 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<LinearLayout |
||||
xmlns:android="http://schemas.android.com/apk/res/android" |
||||
android:id="@+id/layoutTestChooserRow" |
||||
android:orientation="horizontal" |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="fill_parent" |
||||
android:padding="10dp"> |
||||
|
||||
<!-- |
||||
<ImageView android:id="@+id/imgIcon" |
||||
android:layout_width="wrap_content" |
||||
android:layout_height="fill_parent" |
||||
android:gravity="center_vertical" |
||||
android:layout_marginRight="15dp" |
||||
android:layout_marginTop="5dp" |
||||
android:layout_marginBottom="5dp" /> |
||||
--> |
||||
|
||||
<TextView android:id="@+id/txtClassName" |
||||
android:layout_width="fill_parent" |
||||
android:layout_height="fill_parent" |
||||
android:gravity="center_vertical" |
||||
android:textStyle="bold" |
||||
android:textSize="22sp" |
||||
android:textColor="#000000" |
||||
android:layout_marginTop="5dp" |
||||
android:layout_marginBottom="5dp" /> |
||||
|
||||
</LinearLayout> |
@ -0,0 +1,4 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<resources> |
||||
<string name="app_name">jMonkeyEngine Test Applications</string> |
||||
</resources> |
@ -0,0 +1,168 @@ |
||||
/* |
||||
* To change this template, choose Tools | Templates |
||||
* and open the template in the editor. |
||||
*/ |
||||
package com.jmonkeyengine.tests; |
||||
|
||||
import android.content.Context; |
||||
import android.util.Log; |
||||
import android.view.LayoutInflater; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
import android.widget.ArrayAdapter; |
||||
import android.widget.Filter; |
||||
import android.widget.LinearLayout; |
||||
import android.widget.TextView; |
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
public class CustomArrayAdapter extends ArrayAdapter<String> { |
||||
private static final String TAG = "CustomArrayAdapter"; |
||||
|
||||
/* List of items */ |
||||
private List<String> entries; |
||||
private Context activity; |
||||
|
||||
/* Position of selected answer */ |
||||
private int selectedPosition = -1; |
||||
/* Background Color of selected item */ |
||||
private int selectedBackgroundColor = 0xffff00; |
||||
/* Background Color of non selected item */ |
||||
private int nonselectedBackgroundColor = 0x000000; |
||||
/* Background Drawable Resource ID of selected item */ |
||||
private int selectedBackgroundResource = 0; |
||||
/* Background Drawable Resource ID of non selected items */ |
||||
private int nonselectedBackgroundResource = 0; |
||||
|
||||
/* Variables to support list filtering */ |
||||
private ArrayList<String> filteredEntries; |
||||
private Filter filter; |
||||
|
||||
public CustomArrayAdapter(Context context, int textViewResourceId, List<String> objects) { |
||||
super(context, textViewResourceId, objects); |
||||
activity = context; |
||||
entries = new ArrayList<String>(objects); |
||||
filteredEntries = new ArrayList<String>(objects); |
||||
filter = new ClassNameFilter(); |
||||
} |
||||
|
||||
/** Setter for selected item position */ |
||||
public void setSelectedPosition(int selectedPosition) { |
||||
this.selectedPosition = selectedPosition; |
||||
} |
||||
|
||||
/** Setter for selected item background color */ |
||||
public void setSelectedBackgroundColor(int selectedBackgroundColor) { |
||||
this.selectedBackgroundColor = selectedBackgroundColor; |
||||
} |
||||
|
||||
/** Setter for non selected background color */ |
||||
public void setNonSelectedBackgroundColor(int nonselectedBackgroundColor) { |
||||
this.nonselectedBackgroundColor = nonselectedBackgroundColor; |
||||
} |
||||
|
||||
/** Setter for selected item background resource id*/ |
||||
public void setSelectedBackgroundResource(int selectedBackgroundResource) { |
||||
this.selectedBackgroundResource = selectedBackgroundResource; |
||||
} |
||||
|
||||
/** Setter for non selected background resource id*/ |
||||
public void setNonSelectedBackgroundResource(int nonselectedBackgroundResource) { |
||||
this.nonselectedBackgroundResource = nonselectedBackgroundResource; |
||||
} |
||||
|
||||
@Override |
||||
public View getView(int position, View convertView, ViewGroup parent) { |
||||
Log.i(TAG, "getView for position: " + position + " with selectedItem: " + selectedPosition); |
||||
|
||||
View v = convertView; |
||||
ViewHolder holder; |
||||
if (v == null) { |
||||
LayoutInflater vi = |
||||
(LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); |
||||
v = vi.inflate(R.layout.test_chooser_row, null); |
||||
holder = new ViewHolder(); |
||||
holder.textView = (TextView) v.findViewById(R.id.txtClassName); |
||||
holder.layoutRow = (LinearLayout) v.findViewById(R.id.layoutTestChooserRow); |
||||
v.setTag(holder); |
||||
} else { |
||||
holder=(ViewHolder)v.getTag(); |
||||
} |
||||
|
||||
final String itemText = filteredEntries.get(position); |
||||
if (itemText != null) { |
||||
holder.textView.setText(itemText); |
||||
if (position == selectedPosition) { |
||||
Log.i(TAG, "setting Background Color to: " + selectedBackgroundColor); |
||||
// holder.textView.setBackgroundColor(selectedBackgroundColor);
|
||||
// holder.textView.setBackgroundResource(selectedBackgroundResource);
|
||||
holder.layoutRow.setBackgroundResource(selectedBackgroundResource); |
||||
} else { |
||||
Log.i(TAG, "setting Background Color to: " + nonselectedBackgroundColor); |
||||
// holder.textView.setBackgroundColor(nonselectedBackgroundColor);
|
||||
// holder.textView.setBackgroundResource(nonselectedBackgroundResource);
|
||||
holder.layoutRow.setBackgroundResource(nonselectedBackgroundResource); |
||||
} |
||||
} |
||||
return v; |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public Filter getFilter(){ |
||||
if(filter == null){ |
||||
filter = new ClassNameFilter(); |
||||
} |
||||
return filter; |
||||
} |
||||
|
||||
public static class ViewHolder{ |
||||
public TextView textView; |
||||
public LinearLayout layoutRow; |
||||
} |
||||
|
||||
private class ClassNameFilter extends Filter{ |
||||
@Override |
||||
protected FilterResults performFiltering(CharSequence constraint){ |
||||
FilterResults results = new FilterResults(); |
||||
String prefix = constraint.toString().toLowerCase(); |
||||
Log.i(TAG, "performFiltering: entries size: " + entries.size()); |
||||
if (prefix == null || prefix.length() == 0){ |
||||
ArrayList<String> list = new ArrayList<String>(entries); |
||||
results.values = list; |
||||
results.count = list.size(); |
||||
Log.i(TAG, "clearing filter with size: " + list.size()); |
||||
}else{ |
||||
final ArrayList<String> list = new ArrayList<String>(entries); |
||||
final ArrayList<String> nlist = new ArrayList<String>(); |
||||
int count = list.size(); |
||||
|
||||
for (int i = 0; i<count; i++){ |
||||
if(list.get(i).toLowerCase().contains(prefix)){ |
||||
nlist.add(list.get(i)); |
||||
} |
||||
results.values = nlist; |
||||
results.count = nlist.size(); |
||||
} |
||||
Log.i(TAG, "filtered list size: " + nlist.size() + ", entries size: " + entries.size()); |
||||
} |
||||
Log.i(TAG, "Returning filter count: " + results.count); |
||||
return results; |
||||
} |
||||
|
||||
@SuppressWarnings("unchecked") |
||||
@Override |
||||
protected void publishResults(CharSequence constraint, FilterResults results) { |
||||
filteredEntries = (ArrayList<String>)results.values; |
||||
notifyDataSetChanged(); |
||||
clear(); |
||||
int count = filteredEntries.size(); |
||||
for(int i = 0; i<count; i++){ |
||||
add(filteredEntries.get(i)); |
||||
notifyDataSetInvalidated(); |
||||
} |
||||
Log.i(TAG, "publishing results with size: " + count); |
||||
} |
||||
} |
||||
|
||||
} |
@ -0,0 +1,310 @@ |
||||
/* |
||||
* To change this template, choose Tools | Templates |
||||
* and open the template in the editor. |
||||
*/ |
||||
package com.jmonkeyengine.tests; |
||||
|
||||
import android.app.Activity; |
||||
import android.content.Intent; |
||||
import android.content.pm.ApplicationInfo; |
||||
import android.os.Bundle; |
||||
import android.text.Editable; |
||||
import android.text.TextWatcher; |
||||
import android.util.Log; |
||||
import android.view.View; |
||||
import android.widget.AdapterView; |
||||
import android.widget.AdapterView.OnItemClickListener; |
||||
import android.widget.Button; |
||||
import android.widget.EditText; |
||||
import android.widget.ListView; |
||||
import android.widget.Toast; |
||||
import com.jme3.app.Application; |
||||
import dalvik.system.DexFile; |
||||
import java.io.IOException; |
||||
import java.util.ArrayList; |
||||
import java.util.Enumeration; |
||||
import java.util.List; |
||||
|
||||
//TODO: Add settings menu items for MouseEvents, JoystickEvents, and device orientation
|
||||
//TODO: Create onscreen virtual keypad for triggering normal mapped keys used by test apps or modify test apps for touch with onscreen keypad
|
||||
//TODO: Go through each test and see if any classes need to be added to the exclusions list
|
||||
|
||||
/** |
||||
* Main Activity started by the application. Users select different jME3 test |
||||
* applications that are started via TestsHarness Activity. |
||||
* @author iwgeric |
||||
*/ |
||||
public class MainActivity extends Activity implements OnItemClickListener, View.OnClickListener, TextWatcher { |
||||
private static final String TAG = "MainActivity"; |
||||
|
||||
/** |
||||
* Static String to pass the key for the selected test app to the |
||||
* TestsHarness class to start the application. Also used to store the |
||||
* current selection to the savedInstanceState Bundle. |
||||
*/ |
||||
public static final String SELECTED_APP_CLASS = "Selected_App_Class"; |
||||
|
||||
/** |
||||
* Static String to pass the key for the selected list position to the |
||||
* savedInstanceState Bundle so the list position can be restored after |
||||
* exiting the test application. |
||||
*/ |
||||
public static final String SELECTED_LIST_POSITION = "Selected_List_Position"; |
||||
|
||||
/* Fields to contain the current position and display contents of the spinner */ |
||||
private int currentPosition = 0; |
||||
private String currentSelection = ""; |
||||
private List<String> classNames = new ArrayList<String>(); |
||||
private List<String> exclusions = new ArrayList<String>(); |
||||
private String rootPackage; |
||||
|
||||
/* ListView that displays the test application class names. */ |
||||
private ListView listClasses; |
||||
|
||||
/* ArrayAdapter connects the spinner widget to array-based data. */ |
||||
private CustomArrayAdapter arrayAdapter; |
||||
|
||||
/* Buttons to start application or stop the activity. */ |
||||
private Button btnOK; |
||||
private Button btnCancel; |
||||
|
||||
/* Filter Edit Box */ |
||||
EditText editFilterText; |
||||
|
||||
|
||||
/** |
||||
* Called when the activity is first created. |
||||
*/ |
||||
@Override |
||||
public void onCreate(Bundle savedInstanceState) { |
||||
super.onCreate(savedInstanceState); |
||||
|
||||
if (savedInstanceState != null) { |
||||
Log.i(TAG, "Restoring selections in onCreate: " |
||||
+ "position: " + savedInstanceState.getInt(SELECTED_LIST_POSITION, 0) |
||||
+ "class: " + savedInstanceState.getString(SELECTED_APP_CLASS) |
||||
); |
||||
currentPosition = savedInstanceState.getInt(SELECTED_LIST_POSITION, 0); |
||||
currentSelection = savedInstanceState.getString(SELECTED_APP_CLASS); |
||||
} |
||||
|
||||
|
||||
/* Set content view and register views */ |
||||
setContentView(R.layout.test_chooser_layout); |
||||
btnOK = (Button) findViewById(R.id.btnOK); |
||||
btnCancel = (Button) findViewById(R.id.btnCancel); |
||||
listClasses = (ListView) findViewById(R.id.listClasses); |
||||
editFilterText = (EditText) findViewById(R.id.txtFilter); |
||||
|
||||
|
||||
/* Define the root package to start with */ |
||||
rootPackage = "jme3test"; |
||||
|
||||
/* Create an array of Strings to define which classes to exclude */ |
||||
exclusions.add("$"); // inner classes
|
||||
exclusions.add("TestChooser"); // Desktop test chooser class
|
||||
exclusions.add("awt"); // Desktop test chooser class
|
||||
|
||||
// mExclusions.add("");
|
||||
|
||||
/* |
||||
* Read the class names from the dex file and filter based on |
||||
* name and super class. |
||||
*/ |
||||
|
||||
Log.i(TAG, "Composing Test list..."); |
||||
|
||||
ApplicationInfo ai = this.getApplicationInfo(); |
||||
String classPath = ai.sourceDir; |
||||
DexFile dex = null; |
||||
Enumeration<String> apkClassNames = null; |
||||
try { |
||||
dex = new DexFile(classPath); |
||||
apkClassNames = dex.entries(); |
||||
while (apkClassNames.hasMoreElements()) { |
||||
String className = apkClassNames.nextElement(); |
||||
if (checkClassName(className) && checkClassType(className)) { |
||||
classNames.add(className); |
||||
} |
||||
// classNames.add(className);
|
||||
} |
||||
} catch (IOException e) { |
||||
e.printStackTrace(); |
||||
} finally { |
||||
try { |
||||
dex.close(); |
||||
} catch (IOException e) { |
||||
e.printStackTrace(); |
||||
} |
||||
} |
||||
|
||||
/* |
||||
* Create a backing Adapter for the List View from a list of the |
||||
* classes. The list is defined by array of class names. |
||||
*/ |
||||
arrayAdapter = new CustomArrayAdapter( |
||||
this, |
||||
R.layout.test_chooser_row, // text view to display selection
|
||||
classNames // array of strings to display
|
||||
); |
||||
|
||||
/* Set the resource id for selected and non selected backgrounds */ |
||||
Log.i(TAG, "Setting Adapter Background Resource IDs"); |
||||
arrayAdapter.setSelectedBackgroundResource(R.drawable.selected); |
||||
arrayAdapter.setNonSelectedBackgroundResource(R.drawable.nonselected); |
||||
|
||||
/* Attach the Adapter to the spinner */ |
||||
Log.i(TAG, "Setting ListView Adapter"); |
||||
listClasses.setAdapter(arrayAdapter); |
||||
|
||||
/* Set initial selection for the list */ |
||||
setSelection(currentPosition); |
||||
|
||||
/* Set Click and Text Changed listeners */ |
||||
listClasses.setOnItemClickListener(this); |
||||
btnOK.setOnClickListener(this); |
||||
btnCancel.setOnClickListener(this); |
||||
editFilterText.addTextChangedListener(this); |
||||
|
||||
} |
||||
|
||||
/** |
||||
* User selected an application. Sets the current selection and redraws |
||||
* the list view to highlight the selected item. |
||||
* @param parent AdapterView tied to the list |
||||
* @param view The ListView |
||||
* @param position Selection position in the list of class names |
||||
* @param id |
||||
*/ |
||||
@Override |
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { |
||||
setSelection(position); |
||||
} |
||||
|
||||
/** |
||||
* User clicked a view on the screen. Check for the OK and Cancel buttons |
||||
* and either start the applicaiton or exit. |
||||
* @param view |
||||
*/ |
||||
public void onClick(View view) { |
||||
if (view.equals(btnOK)) { |
||||
/* Get selected class, pack it in the intent and start the test app */ |
||||
Log.i(TAG, "User selected OK for class: " + currentSelection); |
||||
Intent intent = new Intent(this, TestsHarness.class); |
||||
intent.putExtra(SELECTED_APP_CLASS, currentSelection); |
||||
startActivity(intent); |
||||
} else if (view.equals(btnCancel)) { |
||||
/* Exit */ |
||||
Log.i(TAG, "User selected Cancel"); |
||||
finish(); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* Check class name to see if the class is in the root package and if it |
||||
* contains any of the exclusion strings |
||||
* @param className Class name to check |
||||
* @return true if the check passes, false otherwise |
||||
*/ |
||||
private boolean checkClassName(String className) { |
||||
boolean include = true; |
||||
/* check to see if the class in inside the rootPackage package */ |
||||
if (className.startsWith(rootPackage)) { |
||||
/* check to see if the class contains any of the exlusion strings */ |
||||
for (int i = 0; i < exclusions.size(); i++) { |
||||
if (className.contains(exclusions.get(i))) { |
||||
Log.i(TAG, "Skipping Class " + className + ". Includes exclusion string: " + exclusions.get(i) + "."); |
||||
include = false; |
||||
break; |
||||
} |
||||
} |
||||
} else { |
||||
include = false; |
||||
Log.i(TAG, "Skipping Class " + className + ". Not in the root package: " + rootPackage + "."); |
||||
} |
||||
return include; |
||||
} |
||||
|
||||
/** |
||||
* Check to see if the class extends Application or SimpleApplication |
||||
* @param className Class name to check |
||||
* @return true if the check passes, false otherwise |
||||
*/ |
||||
private boolean checkClassType(String className) { |
||||
boolean include = true; |
||||
try { |
||||
Class<?> clazz = (Class<?>)Class.forName(className); |
||||
if (Application.class.isAssignableFrom(clazz)) { |
||||
Log.i(TAG, "Class " + className + " is a jME Application"); |
||||
} else { |
||||
include = false; |
||||
Log.i(TAG, "Skipping Class " + className + ". Not a jME Application"); |
||||
} |
||||
|
||||
} catch (ClassNotFoundException cnfe) { |
||||
include = false; |
||||
Log.i(TAG, "Skipping Class " + className + ". Class not found."); |
||||
} |
||||
return include; |
||||
} |
||||
|
||||
private void setSelection(int position) { |
||||
if (position == -1) { |
||||
arrayAdapter.setSelectedPosition(0); |
||||
currentPosition = -1; |
||||
currentSelection = ""; |
||||
listClasses.invalidateViews(); |
||||
} else { |
||||
arrayAdapter.setSelectedPosition(position); |
||||
currentPosition = position; |
||||
currentSelection = arrayAdapter.getItem(position); |
||||
listClasses.invalidateViews(); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void onSaveInstanceState(Bundle savedInstanceState) { |
||||
super.onSaveInstanceState(savedInstanceState); |
||||
Log.i(TAG, "Saving selections in onSaveInstanceState: " |
||||
+ "position: " + currentPosition + ", " |
||||
+ "class: " + currentSelection |
||||
); |
||||
// Save current selections to the savedInstanceState.
|
||||
// This bundle will be passed to onCreate if the process is
|
||||
// killed and restarted.
|
||||
savedInstanceState.putString(SELECTED_APP_CLASS, currentSelection); |
||||
savedInstanceState.putInt(SELECTED_LIST_POSITION, currentPosition); |
||||
} |
||||
|
||||
@Override |
||||
public void onRestoreInstanceState(Bundle savedInstanceState) { |
||||
super.onRestoreInstanceState(savedInstanceState); |
||||
// Log.i(TAG, "Restoring selections in onRestoreInstanceState: "
|
||||
// + "position: " + savedInstanceState.getInt(SELECTED_LIST_POSITION, 0)
|
||||
// + "class: " + savedInstanceState.getString(SELECTED_APP_CLASS)
|
||||
// );
|
||||
// //Restore selections from the savedInstanceState.
|
||||
// // This bundle has also been passed to onCreate.
|
||||
// currentPosition = savedInstanceState.getInt(SELECTED_LIST_POSITION, 0);
|
||||
// currentSelection = savedInstanceState.getString(SELECTED_APP_CLASS);
|
||||
} |
||||
|
||||
public void beforeTextChanged(CharSequence cs, int i, int i1, int i2) { |
||||
} |
||||
|
||||
public void onTextChanged(CharSequence cs, int startPos, int beforePos, int count) { |
||||
Log.i(TAG, "onTextChanged with cs: " + cs + ", startPos: " + startPos + ", beforePos: " + beforePos + ", count: " + count); |
||||
// setSelection(-1);
|
||||
arrayAdapter.getFilter().filter(cs.toString()); |
||||
} |
||||
|
||||
public void afterTextChanged(Editable edtbl) { |
||||
} |
||||
|
||||
@Override |
||||
protected void onDestroy() { |
||||
super.onDestroy(); |
||||
editFilterText.removeTextChangedListener(this); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,50 @@ |
||||
package com.jmonkeyengine.tests; |
||||
|
||||
import android.content.Intent; |
||||
import com.jme3.app.AndroidHarness; |
||||
import android.content.pm.ActivityInfo; |
||||
import android.os.Bundle; |
||||
import com.jme3.system.android.AndroidConfigChooser.ConfigType; |
||||
|
||||
public class TestsHarness extends AndroidHarness{ |
||||
|
||||
/* |
||||
* Note that you can ignore the errors displayed in this file, |
||||
* the android project will build regardless. |
||||
* Install the 'Android' plugin under Tools->Plugins->Available Plugins |
||||
* to get error checks and code completion for the Android project files. |
||||
*/ |
||||
|
||||
public TestsHarness(){ |
||||
// Set the application class to run
|
||||
appClass = "mygame.Main"; |
||||
// Try ConfigType.FASTEST; or ConfigType.LEGACY if you have problems
|
||||
eglConfigType = ConfigType.BEST; |
||||
// Exit Dialog title & message
|
||||
exitDialogTitle = "Exit?"; |
||||
exitDialogMessage = "Press Yes"; |
||||
// Enable verbose logging
|
||||
eglConfigVerboseLogging = false; |
||||
// Choose screen orientation
|
||||
screenOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; |
||||
// Invert the MouseEvents X (default = true)
|
||||
mouseEventsInvertX = true; |
||||
// Invert the MouseEvents Y (default = true)
|
||||
mouseEventsInvertY = true; |
||||
// Add splash screen drawable resource
|
||||
splashPicID = R.drawable.monkey256_9; |
||||
// Simulate a joystick with Android device orientation data (default = false)
|
||||
joystickEventsEnabled = false; |
||||
// Simulate mouse events with Android touch input (default = true)
|
||||
mouseEventsEnabled = true; |
||||
} |
||||
|
||||
@Override |
||||
public void onCreate(Bundle savedInstanceState) { |
||||
Intent intent = getIntent(); |
||||
appClass = intent.getStringExtra(MainActivity.SELECTED_APP_CLASS); |
||||
|
||||
super.onCreate(savedInstanceState); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,15 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!--assets-impl.xml v1.0--> |
||||
<project name="assets-impl" basedir=".."> |
||||
<target name="-init-assets"> |
||||
<jar jarfile="${build.dir}/${assets.jar.name}" excludes="${assets.excludes}" basedir="${assets.folder.name}" compress="${assets.compress}"/> |
||||
<property location="${assets.folder.name}" name="assets.dir.resolved"/> |
||||
<property location="${build.dir}/${assets.jar.name}" name="assets.jar.resolved"/> |
||||
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/> |
||||
<pathconvert property="run.classpath.without.build.classes.dir"> |
||||
<path path="${run.classpath}"/> |
||||
<map from="${build.classes.dir.resolved}" to=""/> |
||||
<map from="${assets.dir.resolved}" to="${assets.jar.resolved}"/> |
||||
</pathconvert> |
||||
</target> |
||||
</project> |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,4 @@ |
||||
$label=Android Device |
||||
$target.clean=clean clean-android |
||||
$target.debug=run-android |
||||
$target.run=run-android |
@ -0,0 +1,8 @@ |
||||
build.xml.data.CRC32=94bf7c61 |
||||
build.xml.script.CRC32=79a29eb7 |
||||
build.xml.stylesheet.CRC32=958a1d3e@1.32.1.45 |
||||
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. |
||||
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. |
||||
nbproject/build-impl.xml.data.CRC32=e2c7a974 |
||||
nbproject/build-impl.xml.script.CRC32=0bb68565 |
||||
nbproject/build-impl.xml.stylesheet.CRC32=6ddba6b6@1.53.1.46 |
@ -0,0 +1,132 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!--mobile-impl.xml v0.18--> |
||||
<project name="mobile-impl" basedir=".."> |
||||
<condition property="android-adb-name" value="${file.separator}platform-tools${file.separator}adb.exe" else="${file.separator}platform-tools${file.separator}adb"> |
||||
<os family="windows" /> |
||||
</condition> |
||||
|
||||
<target name="run-android" depends="-flag-no-android, jar, -test-android-enabled, -copy-android-libs" if="is.android.enabled"> |
||||
<echo>Building debug android application version.</echo> |
||||
<ant dir="mobile" target="debug" inheritall="false"/> |
||||
<antcall target="-start-android-device"/> |
||||
<ant dir="mobile" target="installd" inheritall="false"/> |
||||
<antcall target="-run-android-device"/> |
||||
</target> |
||||
|
||||
<target name="clean-android"> |
||||
<ant dir="mobile" target="clean" inheritall="false"/> |
||||
</target> |
||||
|
||||
<target name="-mobile-deployment" depends="-test-android-enabled, -copy-android-libs" if="is.android.enabled" unless="no.android.build"> |
||||
<ant dir="mobile" target="release" inheritall="false"/> |
||||
<copy todir="dist" verbose="false" flatten="true"> |
||||
<fileset dir="mobile/bin/"> |
||||
<include name="**/*.apk"/> |
||||
</fileset> |
||||
</copy> |
||||
</target> |
||||
|
||||
<target name="-copy-android-libs" if="is.android.enabled"> |
||||
<echo>Copying application libraries to android project.</echo> |
||||
<delete dir="mobile/libs" failonerror="false"/> |
||||
<mkdir dir="mobile/libs"/> |
||||
<copy todir="mobile/libs" verbose="false" flatten="true"> |
||||
<fileset dir="dist/lib/"> |
||||
<exclude name="${assets.jar.name}"/> |
||||
<exclude name="jME3-desktop.jar"/> |
||||
<exclude name="jME3-blender.jar"/> |
||||
<exclude name="jME3-lwjgl.jar"/> |
||||
<exclude name="jME3-lwjgl-natives.jar"/> |
||||
<exclude name="jME3-bullet-natives.jar"/> |
||||
<exclude name="jME3-jbullet.jar"/> |
||||
<exclude name="jME3-bullet.jar"/> |
||||
<exclude name="jbullet.jar"/> |
||||
<exclude name="stack-alloc.jar"/> |
||||
<exclude name="vecmath.jar"/> |
||||
<exclude name="lwjgl.jar"/> |
||||
<exclude name="jinput.jar"/> |
||||
</fileset> |
||||
</copy> |
||||
|
||||
<antcall target="-add-android-lib"/> |
||||
<antcall target="-unzip-bullet-libs"/> |
||||
<antcall target="-unzip-assets"/> |
||||
<copy file="${dist.jar}" todir="mobile/libs/" verbose="false"/> |
||||
</target> |
||||
|
||||
<target name="-add-android-lib"> |
||||
<echo>Adding libraries for android.</echo> |
||||
<copy todir="mobile/libs" flatten="true"> |
||||
<path> |
||||
<pathelement path="${libs.android-base.classpath}"/> |
||||
</path> |
||||
</copy> |
||||
</target> |
||||
|
||||
<target name="-unzip-bullet-libs" depends="-delete-bullet-libs" if="bulletIsIncluded"> |
||||
<echo>Replacing bullet library with android native version.</echo> |
||||
<unzip src="mobile/libs/jME3-bullet-natives-android.jar" dest="mobile/libs"/> |
||||
<delete file="mobile/libs/jME3-bullet-natives-android.jar"/> |
||||
<delete dir="mobile/libs/x86"/> |
||||
</target> |
||||
|
||||
<target name="-delete-bullet-libs" depends="-test-bullet-included" unless="bulletIsIncluded"> |
||||
<delete file="mobile/libs/jME3-bullet.jar"/> |
||||
<delete file="mobile/libs/jME3-bullet-natives-android.jar"/> |
||||
</target> |
||||
|
||||
<target name="-unzip-assets"> |
||||
<echo>Unzipping Assets to Android Directories</echo> |
||||
<delete dir="mobile/assets" failonerror="false"/> |
||||
<mkdir dir="mobile/assets"/> |
||||
<unzip src="dist/lib/${assets.jar.name}" dest="mobile/assets"/> |
||||
<delete file="mobile/libs/${assets.jar.name}" failonerror="true"/> |
||||
</target> |
||||
|
||||
<target name="-test-bullet-included"> |
||||
<condition property="bulletIsIncluded"> |
||||
<contains string="${javac.classpath}" substring="bullet.jar"/> |
||||
</condition> |
||||
</target> |
||||
|
||||
<target name="-start-android-device"> |
||||
<property file="mobile/local.properties"/> |
||||
<exec executable="${sdk.dir}${android-adb-name}" failonerror="true"> |
||||
<arg value="start-server"/> |
||||
</exec> |
||||
<echo>Waiting for device to be ready.. Connect your device now if its not connected yet.</echo> |
||||
<exec executable="${sdk.dir}${android-adb-name}" failonerror="true"> |
||||
<arg value="wait-for-device"/> |
||||
</exec> |
||||
</target> |
||||
|
||||
<target name="-run-android-device"> |
||||
<property file="mobile/local.properties"/> |
||||
<exec executable="${sdk.dir}${android-adb-name}" failonerror="true"> |
||||
<arg value="logcat"/> |
||||
<arg value="-c"/> |
||||
</exec> |
||||
<exec executable="${sdk.dir}${android-adb-name}" failonerror="true"> |
||||
<arg value="shell"/> |
||||
<arg value="am start -n ${mobile.android.package}/.MainActivity"/> |
||||
</exec> |
||||
<echo>Logging android device output, cancel build or disconnect device to stop logging.</echo> |
||||
<exec executable="${sdk.dir}${android-adb-name}" failonerror="true"> |
||||
<arg value="logcat"/> |
||||
<arg value="AndroidRuntime:E"/> |
||||
<arg value="System.out:I"/> |
||||
<arg value="System.err:W"/> |
||||
<arg value="NSLog:*"/> |
||||
</exec> |
||||
</target> |
||||
|
||||
<target name="-test-android-enabled"> |
||||
<condition property="is.android.enabled"> |
||||
<istrue value="${mobile.android.enabled}"/> |
||||
</condition> |
||||
</target> |
||||
|
||||
<target name="-flag-no-android"> |
||||
<property name="no.android.build" value="true"/> |
||||
</target> |
||||
</project> |
@ -0,0 +1,99 @@ |
||||
annotation.processing.enabled=true |
||||
annotation.processing.enabled.in.editor=false |
||||
annotation.processing.processors.list= |
||||
annotation.processing.run.all.processors=true |
||||
ant.customtasks.libs=android-base |
||||
application.homepage=http://jmonkeyenging.org |
||||
application.title=jMonkeyEngine Test Applications |
||||
application.vendor=jMonkeyEngine |
||||
assets.jar.name=assets.jar |
||||
assets.excludes=**/*.j3odata,**/*.mesh.xml,**/*.skeleton.xml,**/*.scene,**/*.material,**/*.obj,**/*.mtl,**/*.blend |
||||
assets.folder.name=assets |
||||
assets.compress=true |
||||
build.classes.dir=${build.dir}/classes |
||||
build.classes.excludes=**/*.java,**/*.form |
||||
# This directory is removed when the project is cleaned: |
||||
build.dir=build |
||||
build.generated.dir=${build.dir}/generated |
||||
build.generated.sources.dir=${build.dir}/generated-sources |
||||
# Only compile against the classpath explicitly listed here: |
||||
build.sysclasspath=ignore |
||||
build.test.classes.dir=${build.dir}/test/classes |
||||
build.test.results.dir=${build.dir}/test/results |
||||
compile.on.save=false |
||||
# Uncomment to specify the preferred debugger connection transport: |
||||
#debug.transport=dt_socket |
||||
debug.classpath=\ |
||||
${run.classpath} |
||||
debug.test.classpath=\ |
||||
${run.test.classpath} |
||||
# This directory is removed when the project is cleaned: |
||||
dist.dir=dist |
||||
dist.jar=${dist.dir}/${application.title}.jar |
||||
dist.javadoc.dir=${dist.dir}/javadoc |
||||
endorsed.classpath= |
||||
excludes= |
||||
includes=** |
||||
jar.archive.disabled=${jnlp.enabled} |
||||
jar.compress=false |
||||
jar.index=${jnlp.enabled} |
||||
javac.classpath=\ |
||||
${libs.jme3.classpath}:\ |
||||
${libs.jme3-libraries.classpath}:\ |
||||
${libs.jme3-libraries-blender.classpath}:\ |
||||
${libs.jme3-test-data.classpath} |
||||
# Space-separated list of extra javac options |
||||
javac.compilerargs= |
||||
javac.deprecation=false |
||||
javac.processorpath=\ |
||||
${javac.classpath} |
||||
javac.source=1.5 |
||||
javac.target=1.5 |
||||
javac.test.classpath=\ |
||||
${javac.classpath}:\ |
||||
${build.classes.dir} |
||||
javadoc.additionalparam= |
||||
javadoc.author=false |
||||
javadoc.encoding=${source.encoding} |
||||
javadoc.noindex=false |
||||
javadoc.nonavbar=false |
||||
javadoc.notree=false |
||||
javadoc.private=false |
||||
javadoc.splitindex=true |
||||
javadoc.use=true |
||||
javadoc.version=false |
||||
javadoc.windowtitle= |
||||
jaxbwiz.endorsed.dirs="${netbeans.home}/../ide12/modules/ext/jaxb/api" |
||||
jnlp.applet.class=jme3test.awt.AppHarness |
||||
jnlp.applet.height=300 |
||||
jnlp.applet.width=300 |
||||
jnlp.codebase.type=local |
||||
jnlp.descriptor=application |
||||
jnlp.enabled=false |
||||
jnlp.mixed.code=default |
||||
jnlp.offline-allowed=false |
||||
jnlp.signed=false |
||||
jnlp.signing= |
||||
jnlp.signing.alias= |
||||
jnlp.signing.keystore= |
||||
main.class=jme3test.TestChooser |
||||
meta.inf.dir=${src.dir}/META-INF |
||||
manifest.file=MANIFEST.MF |
||||
mkdist.disabled=false |
||||
mobile.android.enabled=true |
||||
mobile.android.package=com.jmonkeyengine.tests |
||||
mobile.android.target=android-8 |
||||
platform.active=default_platform |
||||
run.classpath=\ |
||||
${javac.classpath}:\ |
||||
${build.classes.dir}:\ |
||||
${assets.folder.name} |
||||
# Space-separated list of JVM arguments used when running the project |
||||
# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value |
||||
# or test-sys-prop.name=value to set system properties for unit tests): |
||||
run.jvmargs= |
||||
run.test.classpath=\ |
||||
${javac.test.classpath}:\ |
||||
${build.test.classes.dir} |
||||
source.encoding=UTF-8 |
||||
src.dir=src |
@ -0,0 +1,21 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://www.netbeans.org/ns/project/1"> |
||||
<type>org.netbeans.modules.java.j2seproject</type> |
||||
<configuration> |
||||
<buildExtensions xmlns="http://www.netbeans.org/ns/ant-build-extender/1"> |
||||
<extension file="assets-impl.xml" id="assets"> |
||||
<dependency dependsOn="-init-assets" target="-do-init"/> |
||||
</extension> |
||||
<extension file="mobile-impl.xml" id="mobile"> |
||||
<dependency dependsOn="-mobile-deployment" target="jar"/> |
||||
</extension> |
||||
</buildExtensions> |
||||
<data xmlns="http://www.netbeans.org/ns/j2se-project/3"> |
||||
<name>jME3TestsTemplateAndroid</name> |
||||
<source-roots> |
||||
<root id="src.dir"/> |
||||
</source-roots> |
||||
<test-roots/> |
||||
</data> |
||||
</configuration> |
||||
</project> |
Loading…
Reference in new issue