- Swing and Clean Windows — American Window Industries
- Swing & Clean Windows By AWI
- Options Include:
- Swing & Clean Features
- Window World of Michiana
- Leading Replacement Windows and Doors Company Granger, IN
- Slider & Swing & Clean
- To Remove the interior sash (or right sash), Follow These Steps
- To Remove the Exterior sash (or left sash), Follow These Steps
- Swing & Clean
- To swing in to clean, Follow These Steps:
- Swing. Десять полезных простых вещей
- Читают сейчас
- Редакторский дайджест
- Похожие публикации
- Автоматическое тестирование Java Swing приложений
- Подписывание Java апплета и некоторые тонкости java security
- JAVA+Swing в 2013. Стоит ли?
- Заказы
- Минуточку внимания
- Комментарии 56
Swing and Clean Windows — American Window Industries
Swing & Clean Windows By AWI
A lot of hard work goes into making a house a home. There’s no reason your windows should add to your chores. Alside Swing & Clean windows offer a crisp, clean design that accentuates the interior and exterior style of your home. But equally important is the superbly engineered pivot system that allows sash cleaning from inside your home. Each and every sash on a Swing & Clean window swings in for easy access to the inside glass surface, and the outside as well.
All this, and every Swing & Clean window features the same low maintenance, energy-efficient benefits you expect from Alside. Swing & Clean windows are a perfect demonstration of Alside’s pursuit of performance, intelligence and beauty.
In addition to a wide range of upgrades and decorative options, Swing & Clean windows are protected by a Lifetime Limited Warranty*. Alside Swing & Clean windows are available for new construction as part of our Performance Series line.
Options Include:
ClimaTech® insulated glass package
Standard, contour or brass grids
Colonial or diamond grids, grooved glass patterns
American Brown exterior with white or beige interior
Full fiberglass screens available
* See printed warranty for details
Swing & Clean Features
* Fusion-welded sash and mainframe (adds strength and rigidity)
* Triple-barrier weatherstripping (keeps the elements out)
* EasyGrip sash lock for an easy (swinging sash)
* DuraBrake™ pivot/glide shoe (secures the sash for cleaning)
Window World of Michiana
Leading Replacement Windows and Doors Company Granger, IN
Slider & Swing & Clean
Sliding windows are designed to roll from side to side in their own tracks. They are removable from these tracks for the cleaning of the exterior surfaces.
To Remove the interior sash (or right sash), Follow These Steps
- Roll the right sash to within 3″ of the left side. This will enable the sash to bypass the burglar block located in the header of the mainframe. ( photo1)
- Lift the sash up into the header of the mainframe as high as it will go.
- Pull the bottom of the sash toward you. This will clear the rollers and sash frame from the mainframe. ( photo 2)
- Lower the sash to the floor. (photo 3)
To Remove the Exterior sash (or left sash), Follow These Steps
- Roll the left sash to within 3″ of the right side.
- Lift the sash into the header of the mainframe.
- Pull the bottom of the sash toward you, and lower it to the floor. (photo 4)
Carefully clean the exterior of the sashes. To replace the sashes, simply reverse this process.
Swing & Clean
Swing & Clean windows have similar features to a sliding window, except the hardware and frames allow you to swing the sashes in for easy cleaning.
To swing in to clean, Follow These Steps:
- Unlock the window.
- Roll the interior (right) sash at least 3″ from the right jamb.
- Push both easy grip sash locks to allow the sash to swing in ward. (photo 1)
- Once the sash swing inward past four degrees, the pivot point will remain in place. (photo 2)
- Roll the exterior (left) sash at least 3″ from the left jamb and follow the above instruction. (photo 4)
To reengage the sashes, swing the left sash in first. Pick up, and reinsert the release handles into the sash retainer clips. Make sure they snap in place, the sash should roll easily again, Now proceed with the sash should roll easily again. Now proceed with the right sash.
Keep the tracks clean and free from dirt and debris. An occasional light coating of silicone spray lubricant eases the operation of the sashes.
For the center sash of a 3-lite, or a large 2-lite sash, make sure the sash is properly supported while swinging in, and while cleaning.
Swing. Десять полезных простых вещей
Хочу поделиться недавним опытом разработки апплетов на Swing и рассказать про подводные камни, приемы найденные и использованные в процессе работы.
Если вы уже имели дело с библиотекой Swing, то можете сразу переходить ко второй главе.
Три шага для быстрого старта
- Для начала внимательно изучаем документацию по различным Layout менеджерам, без таких базовых знаний будет сложно добиться желаемого отображения.
- Затем внимательно изучаем базовые визуальные компоненты java look and feel или windows look and feel. Как и что использовать в работе можно подсмотреть в учебнике.
- Ставим Eclipse и создаем java проект, создаем апплет и . «дальше напильником»(с).
Для быстрого старта и построения простых интерфейсов этих знаний будет вполне достаточно.
Теперь переходим к самому интересному.
Десять полезных простых вещей
1. Для того чтобы выставить look and feel как в системе (например соответствующий теме windows):
2. Меняем шрифт заданный по умолчанию:
3. Простой вариант модального диалога:
Если требуется более продвинутый диалог, есть вариант с возможностью добавления JComponent:
4. Для быстрой локализации диалогов:
5. Для фильтрации элементов в колонках таблицы JTable есть очень хорошая открытая библиотека Swing Bits с помощью которой можно сделать фильтр «как в Экселе».
6. Для того, чтобы дать пользователю возможность выбирать даты есть отличный компонент jcalendar
7. Для проигрывания звука упакованного в jar архив:
Теперь немного нетривиальных фишек:
8. Для того чтобы встроить в строку таблицы кнопку (с правильным рендером клика):
9. Для того, чтобы изменить компоненты swing из другого потока нужно использовать посредника:
10. И наконец фишка про SwingWorker. В один момент времени может выполняться всего десять SwingWorker потоков, связано это с тем, что пул потоков обработчика SwingWorker имеет максимальный размер десять, так что старайтесь чтобы задачи были не большие. Пример из жизни: в IE можно открыть 10 страниц с апплетами, а 11 будет уже ждать(«висеть») пока осводобится место в ThreadPoolExecutor для обработки данных полученных с сервера в другом потоке.
Послесловие
Читают сейчас
Редакторский дайджест
Присылаем лучшие статьи раз в месяц
Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.
Похожие публикации
Автоматическое тестирование Java Swing приложений
Подписывание Java апплета и некоторые тонкости java security
JAVA+Swing в 2013. Стоит ли?
Заказы
AdBlock похитил этот баннер, но баннеры не зубы — отрастут
Минуточку внимания
Комментарии 56
6. Для того, чтобы дать пользователю возможность выбирать даты есть отличный компонент jcalendar
Он не отличный. JDateChooser меня разочаровал следующим:
1. не поддерживает выравнивание по базовой линии (baseline)
2. есть проблемы с обнулением даты внутри него
3. нет возможности дать пользователю ввести 1.02.12 и чтобы JDateChooser интерпретировал это как 1.02.2012; такое можно вылечить самому, но это дополнительная подпорка.
4. плохо дружит с различными темами; в частности, у меня были проблемы с Nimbus и substance.
9. Для того, чтобы изменить компоненты swing из другого потока нужно использовать посредника:
Есть базовый механизм запуска произвольного кода в потоке GUI — invokeLater. А всякие SwingWorker’ы — это уже механизмы поверх.
В целом разработка под swing парадовала обилием документации и примеров на все случаи жизни. Если интересно могу еще в том же духе поподробней рассказать про фишки JTable.
2. Не нравятся они мне. Мне нравится свинговый GroupLayout, все остальные не так мощны.
Мне тоже нравился вначале GroupLayout. Но вообще, там внутри концепция мозгоразрывная. А единственный вменяемый дизайнер из Netbeans тоже имеет ряд глюков и иногда перекашивает весь layout, и ничего не поделаешь. Так что теперь склоняюсь к GridBagLayout. Хотя, layout’ы в AWT/Swing кривоваты. Например, у GridBagLayout нельзя задавать промежутки между ячейками (insets — это несколько другое).
Это было сделано давно, до гугла. А сейчас только багфиксы, практически никакого развития. Например, поддержки GXT 3 не будет.
WBP изначально был задуман как two-way: работа только с кодом, никаких промежуточных костылей в виде спец-файлов для форм и т.п.
1. Многие из кучи этих констант трудно было бы отнести к какому-то отдельному классу, поэтому они универсальные. Ну с точки зрения «православного» ООП, стили в виджеты следовало бы передавать через java.util.Set, но это довольно тяжеловесный объект, да и создавать его достаточно многословно. А EnumSet в те времена ещё не существовал.
2. Понятия baseline у стандартных виджетов и layout managers нету, но при необходимости можно реализовать такой менеджер. Свойства для baseline в базовом классе Control не предусмотрено, но к каждому контролу можно прилеплять метаинформацию через setData().
3. Не убогие таблицы есть только в Excel :), но там они не являются нативными контролами.
4. Загрузка иконки стандартными методами
При помощи самописного класса:
5. Глобальный обработчик событий клавиатуры можно повесить на Display методом addFilter().
1. Многие из кучи этих констант трудно было бы отнести к какому-то отдельному классу, поэтому они универсальные. Ну с точки зрения «православного» ООП, стили в виджеты следовало бы передавать через java.util.Set, но это довольно тяжеловесный объект, да и создавать его достаточно многословно. А EnumSet в те времена ещё не существовал.
Ну вообще, никуда константы не надо относить. Под константы, сгруппированные по общему признаку, надо выделять отдельный enum. А то, что проблемы SWT во многом благодаря старой Java — это да.
Понятия baseline у стандартных виджетов и layout managers нету, но при необходимости можно реализовать такой менеджер. Свойства для baseline в базовом классе Control не предусмотрено, но к каждому контролу можно прилеплять метаинформацию через setData().
Ну т.е. допиливание. А из коробки не может. В итоге каждый плодит свой велосипед. Кстати, мне кажется, что setData для этого не очень хорошо подходит. Тем более, что baseline может много от чего меняться.
3. Не убогие таблицы есть только в Excel :), но там они не являются нативными контролами.
Ну не надо так передёргивать. Я понимаю, что юзера с его хотелками можно только excel’ем порадовать. Но когда отсутствуют базовые простейшие вещи и приходится ради них допиливать — это ужас.
4. Загрузка иконки стандартными методами
Опять велосипед, опять допиливание. Из коробки не может.
Глобальный обработчик событий клавиатуры можно повесить на Display методом addFilter().
Я и не спорю что это дело можно автоматизировать 🙂
Просто говорю о том, что это дополнительная задача при работе с апплетами.
А если в целом об апплетах — они конечно могут быть использованы в некоторых отдельных случаях, но мне кажется что они себя практически изжили. Их конечно продолжать поддерживать браузеры, как и многие сайты до сих пор поддерживают древний IE6, но это скорее из уважения к немногим пользующимся. Дело даже не в самих апплетах, а в том, что намного проще сейчас написать приложение со схожей функциональностью на html/js, ведь их возможности уже давно перешли за грань «простых скриптиков». Подобное приложение будет работать на порядок быстрее чем апплет и не будет зазря грузить браузер и ресурсы компьютера, а так же не будет иметь проблем со совместимостью с разными платформами.
Возможно единственный более-менее востребованный вариант применения — быстрый перенос своего Swing-приложения в онлайн. Впрочем там есть свои подводные камни…
Сомневаюсь что из-за простоты разбора. Если только на этом базируется выбор апплетов — банковские разработчики весьма недалёкие люди.
Да, действительно, некоторые платные обфускаторы (которыми мы тоже пользуемся в своих проектах) и даже бесплатные умеют прилично запутать код, обрезать все названия, слить классы в одну большую кишку и сделать множество прочих пакостей для любителей покопаться в исходниках. Но проблемы это не решает — код по прежнему можно разобрать при должной усидчивости и терпении, коими «серьёзные» взломщики, уверен, обладают. Именно поэтому делать ставку на то, что в обфусцированном коде никто ничего не поймёт и можно воротить всё что нравится — крайне неверно. Поймут, найдут и сломают, если для них из этого будет профит (а может даже и просто из любопытства).
При корректной реализации любых банковских операций и должной защите на серверной стороне, как мне кажется, не важно какой будет клиент. Ну увидят исходники и что дальше? Если лазеек в серверной стороне нет — злоумышленники ничего и не смогут сделать.
Если какие-то взломы и происходят, то скорее по вине пользователей (увели логин/пароль от аккаунта, к примеру). От этого сложно защититься. Впрочем именно для этого и созданы различные подтверждения операций через sms, привязка к IP/машине и прочие средства защиты от постороннего доступа/проведения операций.
Не буду спорить, что многие вещи будет проще/быстрее реализовать в апплете, обладающем практически всеми возможностями полноценного десктоп-приложения на Java. Остальные же преимущества апплетов я считаю весьма необоснованными или, как минимум, спорными.
P.S. Или может я не о тех банковских клиентах думаю.
К сожалению, я не знаю, как работает банковский клиент-серверный софт. Но обычно бывает так, что в клиенте после, скажем ввода пароля и использования какого-нить сертификата открывается некоторый путь для общения с сервером. Теперь, после получения этого ключика и сертификата я делаю свое приложение с этими же данными и выкладываю его на гитхаб. И все кто не лень начинают лезть в этот самый сервер и рано или поздно находят дыру — защищенных систем не существует, по крайней мере я в них не верю.
Ну так вот при использовании джаваскрипта достать этот ключик и сертификат куда проще.
Полностью защищённых систем может и нет, но достаточный уровень защиты на серверной стороне обеспечить вполне реально (без критических дыр, открывающих доступ ко всему и вся).
В любом случае, я всё веду к тому, что стоит разумно ограничивать себя при защите приложения, а так же разумно подходить к выбору платформы/языка на котором оно пишется, основываясь не только на защищённости клиента от той же декомпилляции. Всегда есть множество вариантов и защиты и взлома приложения — от всего не уберечься.
Впрочем я лично не занимаюсь написанием банковского софта и точно не знаю как у них принимаются подобные решения. Возможно причина вообще не в том, о чём мы думаем…