auto import from //branches/cupcake/...@127101

This commit is contained in:
The Android Open Source Project 2009-01-20 14:03:55 -08:00
parent 66339ad5ce
commit ed18741e07
20 changed files with 464 additions and 371 deletions

View File

@ -58,6 +58,8 @@ INTERNAL_CLEAN_BUILD_VERSION := 2
$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/etc/NOTICE.html)
# Remove generated java files after CL 126153
$(call add-clean-step, find $(OUT_DIR) -type f -name "*.java" -print0 | xargs -0 rm -f)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/sapphire/obj/SHARED_LIBRARIES/libhardware_legacy_intermediates/led)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST

View File

@ -809,6 +809,11 @@ define package_files-copy-root
fi
endef
built_ota_tools := \
$(hide) $(ACP) $(call intermediates-dir-for,EXECUTABLES,applypatch)/applypatch \
$(hide) $(ACP) $(call intermediates-dir-for,EXECUTABLES,check_prereq)/check_prereq
$(BUILT_TARGET_FILES_PACKAGE): PRIVATE_OTA_TOOLS := $(built_ota_tools)
# Depending on the various images guarantees that the underlying
# directories are up-to-date.
$(BUILT_TARGET_FILES_PACKAGE): \
@ -820,6 +825,7 @@ $(BUILT_TARGET_FILES_PACKAGE): \
$(INSTALLED_USERDATAIMAGE_TARGET) \
$(INSTALLED_ANDROID_INFO_TXT_TARGET) \
$(INTERNAL_OTA_SCRIPT_TARGET) \
$(built_ota_tools) \
$(APKCERTS_FILE) \
| $(ACP)
@echo "Package target files: $@"
@ -865,10 +871,11 @@ endif
$(hide) $(call package_files-copy-root, \
$(TARGET_OUT_DATA),$(zip_root)/DATA)
@# Extra contents of the OTA package
$(hide) mkdir -p $(zip_root)/OTA
$(hide) mkdir -p $(zip_root)/OTA/bin
$(hide) $(call package_files-copy-root, \
$(INTERNAL_OTA_INTERMEDIATES_DIR),$(zip_root)/OTA)
$(hide) $(ACP) $(INSTALLED_ANDROID_INFO_TXT_TARGET) $(zip_root)/OTA/
$(hide) $(ACP) $(PRIVATE_OTA_TOOLS) $(zip_root)/OTA/bin/
@# Files that don't end up in any images, but are necessary to
@# build them.
$(hide) mkdir -p $(zip_root)/META

View File

@ -243,15 +243,9 @@ endef
###########################################################
define find-subdir-assets
$(if $(1),\
$(patsubst ./%,%, $(foreach dir,$(1),\
$(shell if [ -d $(dir) ] ; then\
cd $(dir) ; find ./ -type f -and -not -type l ;\
fi \
) \
)) \
, \
$(warning Empty argument supplied to find-subdir-assets) \
$(if $(1),$(patsubst ./%,%, \
$(shell if [ -d $(1) ] ; then cd $(1) ; find ./ -type f -and -not -type l ; fi)), \
$(warning Empty argument supplied to find-subdir-assets) \
)
endef

View File

@ -65,9 +65,11 @@ LOCAL_ASSET_DIR := $(LOCAL_PATH)/assets
endif
ifeq (,$(LOCAL_RESOURCE_DIR))
LOCAL_RESOURCE_DIR := $(wildcard $(addsuffix /$(LOCAL_PATH)/res, $(PRODUCT_PACKAGE_OVERLAYS))) \
$(LOCAL_PATH)/res
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
endif
LOCAL_RESOURCE_DIR := \
$(wildcard $(addsuffix /$(LOCAL_RESOURCE_DIR), $(PRODUCT_PACKAGE_OVERLAYS))) \
$(LOCAL_RESOURCE_DIR)
# this is an app, so add the system libraries to the search path
LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS)
@ -77,8 +79,14 @@ LOCAL_AIDL_INCLUDES += $(FRAMEWORKS_BASE_JAVA_SRC_DIRS)
all_assets := $(call find-subdir-assets,$(LOCAL_ASSET_DIR))
all_assets := $(addprefix $(LOCAL_ASSET_DIR)/,$(patsubst assets/%,%,$(all_assets)))
all_resources := $(call find-subdir-assets,$(LOCAL_RESOURCE_DIR))
all_resources := $(addprefix $(LOCAL_RESOURCE_DIR)/,$(patsubst res/%,%,$(all_resources)))
all_resources := $(strip \
$(foreach dir, $(LOCAL_RESOURCE_DIR), \
$(addprefix $(dir)/, \
$(patsubst res/%,%, \
$(call find-subdir-assets,$(dir)) \
) \
) \
))
all_res_assets := $(strip $(all_assets) $(all_resources))

View File

@ -27,6 +27,7 @@
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/generic.mk \
$(LOCAL_DIR)/min_dev.mk \
$(LOCAL_DIR)/sdk.mk \
$(LOCAL_DIR)/sim.mk \
$(LOCAL_DIR)/generic_with_google.mk

View File

@ -18,5 +18,6 @@ PRODUCT_PACKAGES := \
MediaProvider \
SettingsProvider \
TelephonyProvider \
UserDictionaryProvider \
PackageInstaller \
Bugreport

18
target/product/min_dev.mk Normal file
View File

@ -0,0 +1,18 @@
PRODUCT_POLICY := android.policy_phone
PRODUCT_PROPERTY_OVERRIDES := \
ro.config.notification_sound=F1_New_SMS.ogg
PRODUCT_BRAND := generic
PRODUCT_NAME := min_dev
PRODUCT_DEVICE := generic
PRODUCT_PACKAGES := \
DownloadProvider \
MediaProvider \
SettingsProvider \
PackageInstaller \
Bugreport \
Launcher \
Settings \
sqlite3

View File

@ -17,12 +17,12 @@ include $(CLEAR_VARS)
ifneq ($(TARGET_SIMULATOR),true)
LOCAL_SRC_FILES := applypatch.c xdelta3.c bsdiff.c freecache.c
LOCAL_SRC_FILES := applypatch.c bsdiff.c freecache.c
LOCAL_MODULE := applypatch
LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE_TAGS := eng
LOCAL_C_INCLUDES += external/xdelta3 external/bzip2
LOCAL_STATIC_LIBRARIES += libxdelta3 libmincrypt libbz libc
LOCAL_C_INCLUDES += external/bzip2
LOCAL_STATIC_LIBRARIES += libmincrypt libbz libc
include $(BUILD_EXECUTABLE)

View File

@ -1,20 +1,17 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <errno.h>
@ -209,24 +206,6 @@ int CheckMode(int argc, char** argv) {
}
int ShowLicenses() {
puts("\nCopyright (C) 2008 The Android Open Source Project\n"
"\n"
"This program is free software; you can redistribute it and/or\n"
"modify it under the terms of the GNU General Public License\n"
"as published by the Free Software Foundation; either version 2\n"
"of the License, or (at your option) any later version.\n"
"\n"
"This program is distributed in the hope that it will be useful,\n"
"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"
"GNU General Public License for more details.\n"
"\n"
"You should have received a copy of the GNU General Public License\n"
"along with this program; if not, write to the Free Software\n"
"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA\n"
"02110-1301, USA.\n"
"\n------------------\n"
);
ShowBSDiffLicense();
return 0;
}
@ -251,10 +230,10 @@ size_t FreeSpaceForFile(const char* filename) {
// successfully.
//
// - otherwise, if the sha1 hash of <file> is <src-sha1>, applies the
// xdelta3 or bsdiff <patch> to <file> to produce a new file (the
// type of patch is automatically detected from the file header).
// If that new file has sha1 hash <tgt-sha1>, moves it to replace
// <file>, and exits successfully.
// bsdiff <patch> to <file> to produce a new file (the type of patch
// is automatically detected from the file header). If that new
// file has sha1 hash <tgt-sha1>, moves it to replace <file>, and
// exits successfully.
//
// - otherwise, or if any error is encountered, exits with non-zero
// status.
@ -426,12 +405,8 @@ int main(int argc, char** argv) {
header[2] == 0xc4 && header[3] == 0) {
// xdelta3 patches begin "VCD" (with the high bits set) followed
// by a zero byte (the version number).
int result = ApplyXDelta3Patch(source_to_use->data, source_to_use->size,
patch_filename, output, &ctx);
if (result != 0) {
fprintf(stderr, "ApplyXDelta3Patch failed\n");
return result;
}
fprintf(stderr, "error: xdelta3 patches no longer supported\n");
return 1;
} else if (header_bytes_read >= 8 &&
memcmp(header, "BSDIFF40", 8) == 0) {
int result = ApplyBSDiffPatch(source_to_use->data, source_to_use->size,

View File

@ -1,20 +1,17 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _APPLYPATCH_H
@ -44,11 +41,6 @@ typedef struct _FileContents {
// applypatch.c
size_t FreeSpaceForFile(const char* filename);
// xdelta3.c
int ApplyXDelta3Patch(const unsigned char* old_data, ssize_t old_size,
const char* patch_filename,
FILE* output, SHA_CTX* ctx);
// bsdiff.c
void ShowBSDiffLicense();
int ApplyBSDiffPatch(const unsigned char* old_data, ssize_t old_size,

View File

@ -128,7 +128,7 @@ run_command $WORK_DIR/applypatch -c $WORK_DIR/old.file $BAD2_SHA1 $BAD1_SHA1 &&
# --------------- apply patch ----------------------
$ADB push $DATA_DIR/old.file $WORK_DIR
$ADB push $DATA_DIR/patch.xdelta3 $WORK_DIR
$ADB push $DATA_DIR/patch.bsdiff $WORK_DIR
# Check that the partition has enough space to apply the patch without
# copying. If it doesn't, we'll be testing the low-space condition
@ -145,19 +145,6 @@ if (( free_kb * 1024 < NEW_SIZE * 3 / 2 )); then
exit 1
fi
testname "apply xdelta3 patch"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
diff -q $DATA_DIR/new.file $tmpdir/patched || fail
testname "reapply xdelta3 patch"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
diff -q $DATA_DIR/new.file $tmpdir/patched || fail
$ADB push $DATA_DIR/old.file $WORK_DIR
$ADB push $DATA_DIR/patch.bsdiff $WORK_DIR
testname "apply bsdiff patch"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.bsdiff || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
@ -172,7 +159,6 @@ diff -q $DATA_DIR/new.file $tmpdir/patched || fail
# --------------- apply patch with low space on /system ----------------------
$ADB push $DATA_DIR/old.file $WORK_DIR
$ADB push $DATA_DIR/patch.xdelta3 $WORK_DIR
$ADB push $DATA_DIR/patch.bsdiff $WORK_DIR
free_kb=$(free_space $WORK_FS)
@ -182,18 +168,6 @@ run_command dd if=/dev/zero of=$WORK_DIR/bloat.dat count=$((free_kb-512)) bs=102
free_kb=$(free_space $WORK_FS)
echo "${free_kb}kb free on /$WORK_FS now."
testname "apply xdelta3 patch with low space"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
diff -q $DATA_DIR/new.file $tmpdir/patched || fail
testname "reapply xdelta3 patch with low space"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
diff -q $DATA_DIR/new.file $tmpdir/patched || fail
$ADB push $DATA_DIR/old.file $WORK_DIR
testname "apply bsdiff patch with low space"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.bsdiff || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
@ -207,7 +181,6 @@ diff -q $DATA_DIR/new.file $tmpdir/patched || fail
# --------------- apply patch with low space on /system and /cache ----------------------
$ADB push $DATA_DIR/old.file $WORK_DIR
$ADB push $DATA_DIR/patch.xdelta3 $WORK_DIR
$ADB push $DATA_DIR/patch.bsdiff $WORK_DIR
free_kb=$(free_space $WORK_FS)
@ -216,7 +189,7 @@ echo "${free_kb}kb free on /$WORK_FS"
run_command mkdir /cache/subdir
run_command 'echo > /cache/subdir/a.file'
run_command 'echo > /cache/a.file'
run_command mkdir -p /cache/recovery/otatest
run_command mkdir /cache/recovery /cache/recovery/otatest
run_command 'echo > /cache/recovery/otatest/b.file'
run_command "echo > $CACHE_TEMP_SOURCE"
free_kb=$(free_space cache)
@ -268,8 +241,8 @@ $ADB push $DATA_DIR/old.file $CACHE_TEMP_SOURCE
# put some junk in the old file
run_command dd if=/dev/urandom of=$WORK_DIR/old.file count=100 bs=1024 || fail
testname "apply xdelta3 patch from cache (corrupted source) with low space"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.xdelta3 || fail
testname "apply bsdiff patch from cache (corrupted source) with low space"
run_command $WORK_DIR/applypatch $WORK_DIR/old.file $NEW_SHA1 $NEW_SIZE $BAD1_SHA1:$WORK_DIR/foo $OLD_SHA1:$WORK_DIR/patch.bsdiff || fail
$ADB pull $WORK_DIR/old.file $tmpdir/patched
diff -q $DATA_DIR/new.file $tmpdir/patched || fail

View File

@ -1,20 +1,17 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* http://www.apache.org/licenses/LICENSE-2.0
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// This file is a nearly line-for-line copy of bspatch.c from the

Binary file not shown.

View File

@ -1,121 +0,0 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include "xdelta3.h"
#include "mincrypt/sha.h"
int ApplyXDelta3Patch(const unsigned char* old_data, ssize_t old_size,
const char* patch_filename,
FILE* output, SHA_CTX* ctx) {
#define WINDOW_SIZE 32768
int ret;
xd3_stream stream;
xd3_config config;
xd3_init_config(&config, 0);
config.winsize = WINDOW_SIZE;
ret = xd3_config_stream(&stream, &config);
if (ret != 0) {
fprintf(stderr, "xd3_config_stream error: %s\n", xd3_strerror(ret));
return 1;
}
// In xdelta3 terms, the "input" is the patch file: it contains a
// sequence of instruction codes and data that will be executed to
// produce the output file. The "source" is the original data file;
// it is a blob of data to which instructions in the input may refer
// (eg, an instruction may say "copy such-and-such range of bytes
// from the source to the output").
// For simplicity, we provide the entire source to xdelta as a
// single block. This means it should never have to ask us to load
// blocks of the source file.
xd3_source source;
source.name = "old name";
source.size = old_size;
source.ioh = NULL;
source.blksize = old_size;
source.curblkno = 0;
source.curblk = old_data;
source.onblk = old_size;
ret = xd3_set_source(&stream, &source);
if (ret != 0) {
fprintf(stderr, "xd3_set_source error: %s\n", xd3_strerror(ret));
return 1;
}
unsigned char buffer[WINDOW_SIZE];
FILE* input = fopen(patch_filename, "rb");
if (input == NULL) {
fprintf(stderr, "failed to open patch file %s: %d (%s)\n",
patch_filename, errno, strerror(errno));
return 1;
}
size_t bytes_read;
do {
bytes_read = fread(buffer, 1, WINDOW_SIZE, input);
if (feof(input)) {
xd3_set_flags(&stream, XD3_FLUSH);
}
xd3_avail_input(&stream, buffer, bytes_read);
process:
ret = xd3_decode_input(&stream);
switch (ret) {
case XD3_INPUT:
continue;
case XD3_OUTPUT:
SHA_update(ctx, stream.next_out, stream.avail_out);
if (fwrite(stream.next_out, 1, stream.avail_out, output) !=
stream.avail_out) {
fprintf(stderr, "short write of output file: %d (%s)\n",
errno, strerror(errno));
return 1;
}
xd3_consume_output(&stream);
goto process;
case XD3_GETSRCBLK:
// We provided the entire source file already; it should never
// have to ask us for a block.
fprintf(stderr, "xd3_decode_input: unexpected GETSRCBLK\n");
return 1;
case XD3_GOTHEADER:
case XD3_WINSTART:
case XD3_WINFINISH:
// These are informational events we don't care about.
goto process;
default:
fprintf(stderr, "xd3_decode_input: unknown error %s (%s)\n",
xd3_strerror(ret), stream.msg);
return 1;
}
} while (!feof(input));
fclose(input);
return 0;
#undef WINDOW_SIZE
}

View File

@ -207,7 +207,7 @@
}
#jd-header {
background-color: #E9E9E9;
background-color: #E2E2E2;
padding: 7px 20px;
}
@ -253,6 +253,86 @@
position:relative;
}
/* summary tables for reference pages */
.jd-sumtable {
margin: .5em 1em 1em 1em;
width:99%;
font-size:.9em;
}
.jd-sumtable a {
text-decoration:none;
}
.jd-sumtable a:hover {
text-decoration:underline;
}
/* a div inside a sumtable th holding "Expand All" */
.expandall {
float:right;
font-weight:normal;
}
/* adjustments for in/direct subclasses tables */
.jd-sumtable-subclasses {
margin: 1em 0 0 0;
max-width:968px;
}
/* extra space between end of method name and open-paren */
.sympad {
margin-right: 2px;
}
/* right alignment for the return type in sumtable */
.jd-sumtable .jd-typecol {
text-align:right;
}
/* adjustments for the expando table-in-table */
.jd-sumtable-expando {
margin:.5em 0;
padding:0;
}
/* a div that holds a short description */
.jd-descrdiv {
width:100%;
padding:3px 1em 0 1em;
margin:0;
border:0;
}
/* page-top-right container for reference pages (holds
links to summary tables) */
#api-info-block {
font-size:.8em;
margin:0;
padding:6px;
font-weight:normal;
float:right;
text-align:right;
color:#999;
max-width:70%;
}
/* applies to a div containing links to summary tables */
.sum-details-links {
margin:0 .5em;
padding:0;
font-weight:normal;
}
.sum-details-links a {
text-decoration:none;
}
.sum-details-links a:hover {
text-decoration:underline;
}
/* inheritance table */
.jd-inheritance-table {
border-spacing:0;
@ -295,7 +375,7 @@ hr {
color:#111;
border-top:2px solid #ccc;
padding: .5em 0 0;
margin: 1.75em 0 1em 0;
margin: 1.5em 0 1em 0;
max-width:968px;
}
@ -334,7 +414,12 @@ hr {
.nolist {
list-style:none;
padding:0;
margin:0 0 1em 1em;
margin:0 0 0 1em;
}
.nolist li {
padding:0;
margin:0;
}
h4 .normal {
@ -348,18 +433,57 @@ h4 .normal {
margin:0 0 1em;
}
.jd-tagdata {
margin:.6em 0;
/* API reference: a container for the
.tagdata blocks that make up the detailed
description */
.jd-details-descr {
padding:0;
margin:.5em .25em;
}
.jd-tagdata ul {
/* API reference: a block containing
a detailed description, a params table,
seealso list, etc */
.jd-tagdata {
margin:.5em 1em;
}
/* API reference: adjustments to
the detailed description block */
.jd-tagdescr {
margin:.25em 0 .75em 0;
line-height:1em;
}
.jd-tagdescr p {
margin:.5em 0;
padding:0;
}
.jd-tagdescr ol,
.jd-tagdescr ul {
margin:0 2.5em;
padding:0;
}
.jd-tagdescr table,
.jd-tagdescr img {
margin:.25em 1em;
}
.jd-tagdescr li {
margin:0 0 .25em 0;
padding:0;
}
/* API reference: heading marking
the details section for constants,
attrs, methods, etc. */
h4.jd-details-title {
font-size:1.15em;
background-color: #d6d6d6;
margin:0 0 .6em;
background-color: #E2E2E2;
margin:1.5em 0 .6em;
padding:3px;
}
@ -367,8 +491,11 @@ h4.jd-tagtitle {
margin:0;
}
.jd-details-descr {
padding:3px;
/* API reference: heading for "Parameters", "See Also", etc.,
in details sections */
h5.jd-tagtitle {
margin:0 0 .25em 0;
font-size:1em;
}
.jd-tagtable {
@ -398,13 +525,13 @@ h4.jd-tagtitle {
}
div.special {
padding: 15px 20px 3px;
padding: .5em 1em 1em 1em;
margin: 0 0 1em;
background-color: #ddf0f2;
}
div.special p {
margin: .25em 0;
margin: .5em 0 0 0;
}
div.special ol {
@ -529,6 +656,7 @@ pre.classic {
margin-top:0px;
width:295;
float:right;
font-size:.9em;
}
#qv ol {
@ -725,7 +853,7 @@ table ol.toc {
}
tr.alt-color {
background-color: #e6e6e6;
background-color: #f6f6f6;
}
/* expando trigger */

View File

@ -23,6 +23,84 @@ function toggle_inherited(base) {
<div class="g-unit" id="doc-content">
<div id="api-info-block">
<?cs # are there inherited members ?>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.methods) ?>
<?cs set:inhmethods = #1 ?>
<?cs /if ?>
<?cs if:subcount(cl.constants) ?>
<?cs set:inhconstants = #1 ?>
<?cs /if ?>
<?cs if:subcount(cl.fields) ?>
<?cs set:inhfields = #1 ?>
<?cs /if ?>
<?cs if:subcount(cl.attrs) ?>
<?cs set:inhattrs = #1 ?>
<?cs /if ?>
<?cs /each ?>
<div class="sum-details-links">
Summary:
<?cs if:subcount(class.inners) ?>
<a href="#nestedclasses">Nested Classes</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:subcount(class.attrs) ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lattrs">XML Attrs</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:inhattrs ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhattrs">Inherited XML Attrs</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:subcount(class.enumConstants) ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#enumconstants">Enums</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:subcount(class.constants) ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#constants">Constants</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:inhconstants ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhconstants">Inherited Constants</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:subcount(class.fields) ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lfields">Fields</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:inhfields ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhfields">Inherited Fields</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:subcount(class.ctors.public) ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubctors">Ctors</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:subcount(class.ctors.protected) ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#proctors">Protected Ctors</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:subcount(class.methods.public) ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubmethods">Methods</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:subcount(class.methods.protected) ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#promethods">Protected Methods</a>
<?cs set:linkcount = #1 ?>
<?cs /if ?>
<?cs if:inhmethods ?>
<?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhmethods">Inherited Methods</a>
<?cs /if ?>
</nobr>
<?cs if:inhattrs || inhconstants || inhfields || inhmethods || subcount(class.subclasses.direct) || subcount(class.subclasses.indirect) ?>
&#124; [<a href="">Expand All</a>]
<?cs /if ?>
</div>
</div>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== START OF CLASS DATA ======== -->
@ -58,7 +136,7 @@ function toggle_inherited(base) {
<tr>
<?cs loop:i = 1, (subcount(class.inheritance)-colspan), 1 ?>
<td class="jd-inheritance-space">&nbsp;<?cs if:(subcount(class.inheritance)-colspan) == i ?>&nbsp;&nbsp;&#x21b3;<?cs /if ?></td>
<?cs /loop ?>
<?cs /loop ?>
<td colspan="<?cs var:colspan ?>" class="jd-inheritance-class-cell"><?cs
if:colspan == 1
?><?cs call:class_name(class.qualifiedType) ?><?cs
@ -70,6 +148,21 @@ function toggle_inherited(base) {
<?cs /each ?>
</table>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<?cs if:subcount(class.subclasses.direct) ?>
<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
<?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses
<?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
</td></tr></table>
<?cs /if ?>
<?cs if:subcount(class.subclasses.indirect) ?>
<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
<?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses
<?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
</td></tr></table>
<?cs /if ?>
<div class="jd-descr">
<?cs call:deprecated_warning(class) ?>
@ -78,33 +171,15 @@ function toggle_inherited(base) {
<p><?cs call:tag_list(class.descr) ?></p>
<?cs /if ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<?cs if:subcount(class.inners) ?>
<h4><?cs call:expando_trigger("nested-classes", "opened") ?>Nested Classes</h4>
<?cs call:expandable_class_list("nested-classes", class.inners, "summary") ?>
<?cs /if ?>
<?cs if:subcount(class.subclasses.direct) ?>
<h4><?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses</h4>
<?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
<?cs /if ?>
<?cs if:subcount(class.subclasses.indirect) ?>
<h4><?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses</h4>
<?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
<?cs /if ?>
<?cs call:see_also_tags(class.seeAlso) ?>
</div><!-- jd-descr -->
<?cs # summar macros ?>
<?cs # summary macros ?>
<?cs def:write_method_summary(methods) ?>
<?cs set:count = #1 ?>
<table class="jd-linktable">
<?cs each:method = methods ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-typecol"><nobr>
@ -115,71 +190,80 @@ function toggle_inherited(base) {
<?cs call:type_link(method.generic) ?>
<?cs call:type_link(method.returnType) ?></nobr>
</td>
<td class="jd-linkcol" width="100%"><a href="<?cs var:toroot ?><?cs var:method.href ?>"><strong><?cs var:method.name ?></strong></a>(<?cs call:parameter_list(method.params) ?>)</td>
</tr>
<?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-commentrow"></td>
<td class="jd-commentrow"><?cs call:short_descr(method) ?></td>
</tr>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="<?cs var:toroot ?><?cs var:method.href ?>">
<?cs var:method.name ?></a></span>(<?cs call:parameter_list(method.params) ?>)</nobr>
<?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
<div class="jd-descrdiv"><?cs call:short_descr(method) ?></div>
<?cs /if ?>
</td></tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
</table>
<?cs /def ?>
<?cs def:write_field_summary(fields) ?>
<?cs set:count = #1 ?>
<table class="jd-linktable">
<?cs each:field=fields ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-descrcol"><?cs var:field.scope ?>&nbsp;</td>
<td class="jd-descrcol"><?cs var:field.static ?>&nbsp;</td>
<td class="jd-descrcol"><?cs var:field.final ?>&nbsp;</td>
<td class="jd-descrcol"><?cs call:type_link(field.type) ?>&nbsp;</td>
<td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:field.href ?>"><?cs var:field.name ?></a>&nbsp;</td>
<td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?>&nbsp;</td>
<td class="jd-typecol"><nobr>
<?cs var:field.scope ?>
<?cs var:field.static ?>
<?cs var:field.final ?>
<?cs call:type_link(field.type) ?></nobr></td>
<td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:field.href ?>"><?cs var:field.name ?></a></td>
<td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?></td>
</tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
</table>
<?cs /def ?>
<?cs def:write_constant_summary(fields) ?>
<?cs set:count = #1 ?>
<table class="jd-linktable">
<?cs each:field=fields ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-descrcol"><?cs call:type_link(field.type) ?>&nbsp;</td>
<td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:field.href ?>"><?cs var:field.name ?></a>&nbsp;</td>
<td class="jd-descrcol"><?cs call:short_descr(field) ?>&nbsp;</td>
<td class="jd-typecol"><?cs call:type_link(field.type) ?></td>
<td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:field.href ?>"><?cs var:field.name ?></a></td>
<td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?></td>
</tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
</table>
<?cs /def ?>
<?cs def:write_attr_summary(attrs) ?>
<?cs set:count = #1 ?>
<table class="jd-linktable">
<tr>
<th>Attribute name</th>
<th>Related methods</th>
<th>&nbsp;</th>
<td><nobr><em>Attribute Name</em></nobr></td>
<td><nobr><em>Related Method</em></nobr></td>
<td><nobr><em>Description</em></nobr></td>
</tr>
<?cs each:attr=attrs ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-linkcol"><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs var:attr.name ?></a></td>
<td class="jd-linkcol"><?cs each:m=attr.methods
?><a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a><br/>
<?cs /each ?>&nbsp;
<td class="jd-linkcol"><?cs each:m=attr.methods ?>
<a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a>
<?cs /each ?>
</td>
<td class="jd-descrcol" width="100%"><?cs call:short_descr(attr) ?>&nbsp;</td>
</tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
</table>
<?cs /def ?>
<?cs def:write_inners_summary(classes) ?>
<?cs set:count = #1 ?>
<?cs each:cl=class.inners ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-typecol"><nobr>
<?cs var:class.scope ?>
<?cs var:class.static ?>
<?cs var:class.final ?>
<?cs var:class.abstract ?>
<?cs var:class.kind ?></nobr></td>
<td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
<td class="jd-descrcol" width="100%"><?cs call:short_descr(cl) ?>&nbsp;</td>
</tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
<?cs /def ?>
<?cs # end macros ?>
@ -187,39 +271,50 @@ function toggle_inherited(base) {
<div class="jd-descr">
<h2>Summary</h2>
<?cs if:subcount(class.inners) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
<?cs call:write_inners_summary(class.inners) ?>
<?cs /if ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== FIELD SUMMARY =========== -->
<?cs if:subcount(class.attrs) ?>
<h3>XML Attributes</h3>
<!-- =========== FIELD SUMMARY =========== -->
<table id="lattrs" class="jd-sumtable"><tr><th colspan="12">XML Attributes</th></tr>
<?cs call:write_attr_summary(class.attrs) ?>
<?cs /if ?>
<?cs # if there are inherited attrs, write the table ?>
<?cs if:inhattrs ?>
<table id="inhattrs" class="jd-sumtable"><tr><th>
<div class="expandall">[<a href="">Expand All</a>]</div>
<div style="clear:left;">Inherited XML Attributes</div></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.attrs) ?>
<h4><?cs call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?>XML Attributes inherited
from <?cs var:cl.kind ?>
<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
</h4>
<tr><td colspan="12">
<?cs call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
<div id="inherited-attrs-<?cs var:cl.qualified ?>">
<div id="inherited-attrs-<?cs var:cl.qualified ?>-list"
class="jd-inheritedlinks">
class="jd-inheritedlinks">
</div>
<div id="inherited-attrs-<?cs var:cl.qualified ?>-summary"
style="display: none;">
<?cs call:write_attr_summary(cl.attrs) ?>
<div id="inherited-attrs-<?cs var:cl.qualified ?>-summary" style="display: none;">
<table class="jd-sumtable-expando">
<?cs call:write_attr_summary(cl.attrs) ?></table>
</div>
</div>
</td></tr>
<?cs /if ?>
<?cs /each ?>
</table>
<?cs /if ?>
<?cs if:subcount(class.enumConstants) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<h3>Enum Values</h3>
<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
<?cs set:count = #1 ?>
<table class="jd-linktable">
<?cs each:field=class.enumConstants ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-descrcol"><?cs call:type_link(field.type) ?>&nbsp;</td>
@ -228,109 +323,129 @@ function toggle_inherited(base) {
</tr>
<?cs set:count = count + #1 ?>
<?cs /each ?>
</table>
<?cs /if ?>
<?cs if:subcount(class.constants) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== FIELD SUMMARY =========== -->
<h3>Constants</h3>
<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
<?cs call:write_constant_summary(class.constants) ?>
</table>
<?cs /if ?>
<?cs # if there are inherited constants, write the table ?>
<?cs if:inhconstants ?>
<table id="inhconstants" class="jd-sumtable"><tr><th>
<div class="expandall">[<a href="">Expand All</a>]</div>
<div style="clear:left;">Inherited Constants</div></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.constants) ?>
<h4><?cs call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?>Constants inherited
from <?cs var:cl.kind ?>
<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
</h4>
<tr><td colspan="12">
<?cs call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
<div id="inherited-constants-<?cs var:cl.qualified ?>">
<div id="inherited-constants-<?cs var:cl.qualified ?>-list"
<div id="inherited-constants-<?cs var:cl.qualified ?>-list"
class="jd-inheritedlinks">
</div>
<div id="inherited-constants-<?cs var:cl.qualified ?>-summary"
style="display: none;">
<?cs call:write_constant_summary(cl.constants) ?>
</div>
</div>
<div id="inherited-constants-<?cs var:cl.qualified ?>-summary" style="display: none;">
<table class="jd-sumtable-expando">
<?cs call:write_constant_summary(cl.constants) ?></table>
</div>
</div>
</td></tr>
<?cs /if ?>
<?cs /each ?>
</table>
<?cs /if ?>
<?cs if:subcount(class.fields) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== FIELD SUMMARY =========== -->
<h3>Fields</h3>
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
<?cs call:write_field_summary(class.fields) ?>
</table>
<?cs /if ?>
<?cs # if there are inherited fields, write the table ?>
<?cs if:inhfields ?>
<table id="inhfields" class="jd-sumtable"><tr><th>
<div class="expandall">[<a href="">Expand All</a>]</div>
<div style="clear:left;">Inherited Fields</div></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.fields) ?>
<h4><?cs call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?>Fields inherited
from <?cs var:cl.kind ?>
<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
</h4>
<tr><td colspan="12">
<?cs call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
<div id="inherited-fields-<?cs var:cl.qualified ?>">
<div id="inherited-fields-<?cs var:cl.qualified ?>-list"
<div id="inherited-fields-<?cs var:cl.qualified ?>-list"
class="jd-inheritedlinks">
</div>
<div id="inherited-fields-<?cs var:cl.qualified ?>-summary"
style="display: none;">
<?cs call:write_field_summary(cl.fields) ?>
</div>
</div>
<div id="inherited-fields-<?cs var:cl.qualified ?>-summary" style="display: none;">
<table class="jd-sumtable-expando">
<?cs call:write_field_summary(cl.fields) ?></table>
</div>
</div>
</td></tr>
<?cs /if ?>
<?cs /each ?>
</table>
<?cs /if ?>
<?cs if:subcount(class.ctors.public) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<h3>Public Constructors</h3>
<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
<?cs call:write_method_summary(class.ctors.public) ?>
</table>
<?cs /if ?>
<?cs if:subcount(class.ctors.protected) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<h3>Protected Constructors</h3>
<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
<?cs call:write_method_summary(class.ctors.protected) ?>
</table>
<?cs /if ?>
<?cs if:subcount(class.methods.public) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========== METHOD SUMMARY =========== -->
<h3>Public Methods</h3>
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
<?cs call:write_method_summary(class.methods.public) ?>
</table>
<?cs /if ?>
<?cs if:subcount(class.methods.protected) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========== METHOD SUMMARY =========== -->
<h3>Protected Methods</h3>
<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
<?cs call:write_method_summary(class.methods.protected) ?>
</table>
<?cs /if ?>
<?cs # if there are inherited methods, write the table ?>
<?cs if:inhmethods ?>
<table id="inhmethods" class="jd-sumtable"><tr><th>
<div class="expandall">[<a href="">Expand All</a>]</div>
<div style="clear:left;">Inherited Methods</div></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.methods) ?>
<h4><?cs call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?>Methods inherited
from <?cs var:cl.kind ?>
<a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
</h4>
<tr><td colspan="12"><?cs call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?>
From <?cs var:cl.kind ?> <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
<div id="inherited-methods-<?cs var:cl.qualified ?>">
<div id="inherited-methods-<?cs var:cl.qualified ?>-list"
<div id="inherited-methods-<?cs var:cl.qualified ?>-list"
class="jd-inheritedlinks">
</div>
<div id="inherited-methods-<?cs var:cl.qualified ?>-summary"
style="display: none;">
<?cs call:write_method_summary(cl.methods) ?>
</div>
</div>
<div id="inherited-methods-<?cs var:cl.qualified ?>-summary" style="display: none;">
<table class="jd-sumtable-expando">
<?cs call:write_method_summary(cl.methods) ?></table>
</div>
</div>
</td></tr>
<?cs /if ?>
<?cs /each ?>
</table>
<?cs /if ?>
</div><!-- jd-descr (summary) -->
@ -381,7 +496,8 @@ function toggle_inherited(base) {
<?cs var:method.synchronized ?>
<?cs call:type_link(method.returnType) ?>
</span>
<?cs var:method.name ?>(<?cs call:parameter_list(method.params) ?>)
<span class="sympad"><?cs var:method.name ?></span>
<span class="normal">(<?cs call:parameter_list(method.params) ?>)</span>
</h4>
<div class="jd-details-descr"><?cs call:description(method) ?></div>
</div>

View File

@ -18,10 +18,10 @@
<?cs each:letter=docs.classes ?>
<?cs set:count = #1 ?>
<h2 id="letter_<?cs name:letter ?>"><?cs name:letter ?></h2>
<table class="jd-linktable jd-lettertable">
<table class="jd-sumtable">
<?cs set:cur_row = #0 ?>
<?cs each:cl = letter ?>
<tr class="jd-letterentries <?cs if:count % #2 ?>alt-color<?cs /if ?>" >
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
<td class="jd-descrcol" width="100%"><?cs call:short_descr(cl) ?>&nbsp;</td>
</tr>

View File

@ -103,7 +103,7 @@ This <?cs var:kind ?> is deprecated.
<?cs def:see_also_tags(also) ?>
<?cs if:subcount(also) ?>
<div class="jd-tagdata">
<h4 class="jd-tagtitle">See Also</h4>
<h5 class="jd-tagtitle">See Also</h5>
<ul class="nolist">
<?cs each:tag=also
?><li><?cs
@ -114,8 +114,7 @@ This <?cs var:kind ?> is deprecated.
else ?>[ERROR: Unknown @see kind]<?cs
/if ?></li>
<?cs /each ?>
</table>
<ul>
</ul>
</div>
<?cs /if ?>
<?cs /def ?>
@ -127,11 +126,12 @@ This <?cs var:kind ?> is deprecated.
<?cs def:description(obj) ?>
<?cs call:deprecated_warning(obj) ?>
<?cs call:tag_list(obj.descr) ?>
<div class="jd-tagdata jd-tagdescr"><p><?cs call:tag_list(obj.descr) ?></p></div>
<?cs if:subcount(obj.attrRefs) ?>
<div class="jd-tagdata">
<h4 class="jd-tagtitle">Related XML Attributes</h4>
<h5 class="jd-tagtitle">Related XML Attributes</h5>
<ul class="nolist">
<?cs each:attr=obj.attrRefs ?>
<li><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs var:attr.name ?></a></li>
@ -142,7 +142,7 @@ This <?cs var:kind ?> is deprecated.
<?cs if:subcount(obj.paramTags) ?>
<div class="jd-tagdata">
<h4 class="jd-tagtitle">Parameters</h4>
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<?cs each:tag=obj.paramTags
?><tr>
@ -158,14 +158,14 @@ This <?cs var:kind ?> is deprecated.
<?cs if:subcount(obj.returns) ?>
<div class="jd-tagdata">
<h4 class="jd-tagtitle">Returns</h4>
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li><?cs call:tag_list(obj.returns) ?></li></ul>
</div>
<?cs /if ?>
<?cs if:subcount(obj.throws) ?>
<div class="jd-tagdata">
<h4 class="jd-tagtitle">Throws</h4>
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<?cs each:tag=obj.throws
?> <tr>
@ -185,7 +185,7 @@ This <?cs var:kind ?> is deprecated.
<?cs # A table of links to classes with descriptions, as in a package file or the nested classes ?>
<?cs def:class_link_table(classes) ?>
<?cs set:count = #1 ?>
<table class="jd-linktable"><?cs
<table class="jd-sumtable-expando"><?cs
each:cl=classes ?>
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>

View File

@ -29,7 +29,9 @@
<?cs def:class_table(label, classes) ?>
<?cs if:subcount(classes) ?>
<h3><?cs var:label ?></h3>
<div class="jd-sumtable">
<?cs call:class_link_table(classes) ?>
</div>
<?cs /if ?>
<?cs /def ?>

View File

@ -17,9 +17,9 @@
</div>
<?cs set:count = #1 ?>
<table class="jd-linktable">
<table class="jd-sumtable">
<?cs each:pkg = docs.packages ?>
<tr class="jd-letterentries <?cs if:count % #2 ?>alt-color<?cs /if ?>" >
<tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
<td class="jd-linkcol"><?cs call:package_link(pkg) ?></td>
<td class="jd-descrcol" width="100%"><?cs call:tag_list(pkg.shortDescr) ?>&nbsp;</td>
</tr>